雲計算Hadoop配置(三) ——完全分佈配置

  

3.4.1 系統規劃

由於條件的限制,不能夠獲得更多的機器來進行模擬,所以在模擬完全分佈式計算中,只能使用三臺機器搭建環境。一臺機器作爲Namenode和JobTracker,另外兩臺機器作爲運行任務的Datanode節點。如下表3-1所示:

表3-1  分佈式機器節點說明

Node

User

IP adress

備註

Namenode

administrator1

192.168.0.1

Namenode和Jobtracker使用同一臺機器

Datanode

administrator2

192.168.0.2

Datanode

administrator3

192.168.0.3

3.4.2 修改hosts

$ sudo gedit /etc/hosts  //將所使用到的三臺主機及其名稱添加到該文件中.

圖3-1 修改hosts

3.4.3 配置ssh

//在Namenode節點上運行命令,使得Namenode能夠無密碼訪問Datanode

$ scp [email protected]:/home/administrator/.ssh/id_dsa.pub  2_dsa.pub

$ cat 2_dsa.pub >> /home/administrator/authorized_keys

$ scp [email protected]:/home/administrator/.ssh/id_dsa.pub  3_dsa.pub

$ cat 3_dsa.pub >> /home/administrator/authorized_keys

//在Datanode節點上運行命令,使得Datanode能夠無密碼訪問Namenode

$ scp [email protected]:/home/administrator/.ssh/id_dsa.pub 1_dsa.pub

$ cat 1_dsa.pub >> /home/administrator/authorized_keys

//在Datanode節點上運行命令,使得Datanode之間能夠無密碼訪問

//在Datanode1(192.168.0.2)上

$ scp [email protected]:/home/administrator/.ssh/id_dsa.pub 3_dsa.pub

$ cat 3_dsa.pub >> /home/administrator/authorized_keys

//在Datanode2(192.168.0.3)上

$ scp [email protected]:/home/administrator/.ssh/id_dsa.pub 2_dsa.pub

$ cat 2_dsa.pub >> /home/administrator/authorized_keys

3.4.4 配置conf/masters、conf/slaves

在所有節點上都要配置:

1)      在$HADOOP_HOME/conf/masters 中加入 NameNode IP、Jobtracker IP,本論文中即添加一個IP即可,如下圖3-2所示:

  

圖3-2 配置masters

2)      在$HADOOP_HOME/conf/slaves 中加入 slaveIPs,本論文中即添加兩個節點的IP地址即可,如下圖3-3所示:

圖3-3 配置slaves

3.4.5 配置三個文件

1)   配置$HADOOP_HOME/conf/core-site.xml

圖3-4 配置core-site.xml

      原來文件是空的,只要在該文件中添加圖3-4中標示部分的內容即可。如沒有配置 hadoop.tmp.dir 參數,此時系統默認的臨時目錄爲:/tmp/hadoop/hadoop。而這個目錄在每次重啓後都會被幹掉,必須重新執行format才行,否則會出錯 。

2)      配置$HADOOP_HOME/conf/hdfs-site.xml,只要在該文件中添加圖3-5中標示部分的內容即可。

圖3-5 配置hdfs-site.xml

3)      配置$HADOOP_HOME/conf/mapred-site.xml,在原文件中添加圖3-6中標示的內容即可。

圖3-6 配置mapred-site.xml

3.4.6 啓動Hadoop系統

1)        在Namenode上格式化分佈式系統

$ bin/hadoop namenode –format   //在Namenode上格式化系統

圖3-7 格式化Namenode

2)        在Namenode上啓動HDFS

$ bin/start-dfs.sh      //該命令將訪問NameNode 上的 conf/slaves 文件,在本機上啓動 NameNode,本機JobTracker 上啓動 SecondaryNameNode,在conf/slaves文件裏的所有主機上啓動DataNode

圖3-8 啓動HDFS

3)        在JobTracker上啓動Map-Reduce

$ bin/start-mapred.sh    //該命令將訪問 JobTracker 上的 conf/slaves 文件,在本機上啓動Jobtracker, 在 conf/slaves 文件裏的所有主機上啓動TaskTracker,本論文中的JobTracker和NameNode是同一個節點,所以在NameNode上啓動 MapReduce。

圖3-9 啓動MapReduce

3.4.7 運行簡單例子

1)        在/home/administrator文件夾下面創建臨時文件test_file.txt,輸入一些單詞或語句。將本地文件test_file.txt文件複製到hdfs文件系統test-in文件夾中

$ bin/hadoop dfs -copyFromLocal /home/administrator/test_file.txt  /test-in

圖3-10 複製文件

$ bin/hadoop dfs –ls test-in//查看文件系統test-in文件夾中文件是否上傳成功

圖3-11 查看文件

2)        執行簡單例子

$ bin/hadoop jar hadoop-mapred-examples-0.21.0.jar wordcount test-in test-out

圖3-12 執行任務

3)        查看結果

$ bin/hadoop dfs –cat test-out/part-r-00000

圖3-13 查看結果

3.4.8 關閉hadoop進程

1)        關閉Map-Reduce,在JobTracker上

圖3-14 關閉Map-Reduce

2)        關閉HDFS,在NameNode上

圖3-15 關閉HDFS

發佈了22 篇原創文章 · 獲贊 2 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章