為了要能跑後續的 Hadoop 範例, 我們要先準備好 Hadoop 的環境. 這邊安裝的平台是 Linux Ubuntu 11.x. NameNode 與 DataNode 配置如下:
在只有一台機器下, 只能透過 VMWare 跑多個 OS. 這邊使用 VMWare Workstation 7.0.1 build-227600; OS 使用 ubuntu-11.10-server-i386.iso 安裝. 安裝 VM OS 的過程不會在下面進行說明, 所以底下列的步驟請自己完成:
設置 NameNode:
Step1. 設置 Hostname
我們的 NameNode 使用 IP=192.168.80.180; Hostname="ubuntun". 第一步我們要將 DataNode 的 Hostname 設置到 /etc/hosts: (紅色與棕色字體是註解!)
上面的動作在兩個 DataNode 也要做類似的事, 千萬別忘記!!!
Step2. 設置無密碼 SSH 登入
詳細可見 [Linux 小學堂] SSH 免密碼登入, 這邊 NameNode 會做一次, 兩個 DataNode 就以此類推:
請確保 NameNode 登入到兩個 DataNode 都不需要密碼; 相同其他兩個 DataNode 登入到另外兩個 Node 也需要設定成不需要密碼.
Step3. 設置 Hadoop
接著要來布置 Hadoop 0.23 版本, 並做環境設定:
# Create a copy of the template mapred-site.xml file
$ sudo cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
# Edit the copy we just created
$ sudo vi $HADOOP_HOME/etc/hadoop/mapred-site.xml --- 如果 NameNode local 沒有跑 DataNode, 此處略過!!!
# By default, Hadoop will place DFS data node blocks in file://${hadoop.tmp.dir}/dfs/data (the property you have just configured in core-site.xml)
# 但你可以透過下面設定設置 HDFS 存放的位置, 方便管理!
$ sudo mkdir /home/hadoop/hdfs
$ sudo chown -R hadoop:hadoopgroup /home/hadoop/hdfs
$ sudo chmod 750 /home/hadoop/hdfs
$ sudo vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml # 添加下面的內容
# 上面的 dfs.replication 設定是說你要多少的副本數, 因為我們只有兩個 DataNode, 當然使用預設的 3 會出問題!
$ sudo vi $HADOOP_HOME/etc/hadoop/slaves # 告訴 NameNode 有多少個 DataNode
- 192.168.80.191
- 192.168.80.192
$ hdfs namenode -format # 這步對 NameNode 做初始化
目前已經完成大部分的設置, 接著要來看 DataNode 的設置.
設置 DataNode:
DataNode 有兩個, 看完下面就舉一反二搂.
Step1. 設置 Hostname
請參考 NameNode 的設置.
Step2. 設置無密碼 SSH 登入
請參考 NameNode 的設置.
Step3. 設置 Hadoop
接著要來布置 Hadoop 0.23 版本, 並做環境設定:
# 上面的 fs.defaultFS 要設置成 NameNode 的 IP. 因為 DataNode 會向 NameNode 發送 Heartbeat, 讓 NameNode 知道它還活著!
# Create a copy of the template mapred-site.xml file
$ sudo cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
# mapred-site.xml – contains configuration information for MapReduce properties.
# Edit the copy we just created
$ sudo vi $HADOOP_HOME/etc/hadoop/mapred-site.xml
# 這邊設定的 Job Tracker 是用在 MapReduce 編程環境中, 在 MapReduce 中一個任務被稱為一個 Job, 透過 Job Tracker 分配 Task 給 DataNode 執行.
# By default, Hadoop will place DFS data node blocks in file://${hadoop.tmp.dir}/dfs/data (the property you have just configured in core-site.xml)
# 但你可以透過下面設定設置 HDFS 存放的位置, 方便管理!
# hdfs-site.xml – contains server side configuration of your distributed file system.
$ sudo mkdir /home/hadoop/hdfs
$ sudo chown -R hadoop:hadoopgroup /home/hadoop/hdfs
$ sudo chmod 750 /home/hadoop/hdfs
$ sudo vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml # 添加下面的內容
$ sudo vi hadoop/etc/hadoop/yarn-site.xml # 加入下面設定
到目前為止已經完成了對 DataNode 最基本的 Hadoop 設置.
啟動 Hadoop Service:
當 NameNode 與 DataNode 都設置完畢, 接下來便是啟動 Hadoop Services 並跑一個 word count 的範例:
Step1: Check DataNode Log (Optional)
請先登入一台 DataNode, (假設是 DataNode1), 並 tail follow data node 的 log:
Step2: 啟動 Hadoop 服務
Step3 跑 Word count 測試程式
接著我們要來跑一個 word count 的測試程式, 確定整個 Hadoop 服務運行正常.
關閉 Hadoop Service:
如果要關閉 Hadoop 的服務可以使用下面命令:
Supplement:
* [ 文章收集 ] HADOOP-0.23.9 SINGLE NODE SETUP ON UBUNTU 13.04
* Hadoop Shell Commands
沒有留言:
張貼留言