在完成單節(jié)點環(huán)境搭建的基礎上進行集群環(huán)境搭建 單節(jié)點搭建:http://vampire1126./admin/blogs/891693
流程: 配置階段: 配置一系列文件 在所有slave節(jié)點上拷貝master和JobTracker的公鑰 在JobTracker節(jié)點上拷貝master的公鑰
運行階段: 啟動hadoop 跑wordcount
集群搭建準備: 至少兩臺已完成單節(jié)點搭建的機器 (此例為兩臺,IP分別是192.168.1.10與192.168.1.11,其中10為master)
配置階段: 1、配置一系列文件(所有節(jié)點上) 1、配置etc下的hosts文件 sudo gedit /etc/hosts (注:打開后將里面的內(nèi)容全部刪除,不刪除的話啟動時會出現(xiàn)所有slave啟動正常,但是master上的DataNode為0,導致系統(tǒng)不能正常運轉(zhuǎn)的情況,全部刪除以后添加所有節(jié)點的IP和標識符,格式如下 192.168.1.10 master 192.168.1.11 slave 標識符可以隨便寫,主要是起到一個映射作用)
2、進入hadoop目錄下,配置conf下的masters文件 cd /usr/local/hadoop sudo gedit conf/masters (打開后將里面內(nèi)容清空,然后添加“master”或者master的IP“192.168.1.10”,此處即是hosts中配置的映射,填master或者直接填IP都是一樣的)
3、配置conf下的slaves文件 sudo gedit conf/slaves (打開后將里面內(nèi)容清空,然后添加“slave”或者slave的IP“192.168.1.11”,原因同上)
4、配置conf下的core-site.xml文件 sudo gedit conf/core-site.xml (因為已完成單節(jié)點配置,因此只需要修改就行了。打開后將第一個<property>標簽中的localhost改為“master”或者master的IP,如下
第二個<property> 標簽,即包含<name>dfs.replication</name>一行的那個,其中的“<value>”表示 文件上傳到dfs上時的備份個數(shù),此數(shù)值不能大于slave即datanode的個數(shù))
5、配置conf下的hdfs-site.xml文件(此配置在slave節(jié)點上可有可無) sudo gedit conf/hdfs-site.xml (打開后在空的<configuration> </configuration>中添加如下配置
6、配置conf下的mapred-site.xml文件 sudo gedit conf/mapred-site.xml (打開后將<value>標簽里的localhost改為JobTracker的IP,因為本例中JobTracker也是master本身,所以將localhost改為“master”或master的IP)
2、在所有slave節(jié)點上拷貝master和JobTracker的公鑰 1、拷貝公鑰 scp hadoop@master:/home/hadoop/.ssh/id_rsa.pub /home/hadoop/.ssh/master_rsa.pub scp hadoop@master:/home/hadoop/.ssh/id_rsa.pub /home/haddop/.ssh/jobtracker_rsa.pub (注:因為本例中master和JobTracker是同一臺機器,所以相當于在master上拷了兩次公鑰)
2、將拷貝的公鑰添加到信任列表 cat /home/hadoop/.ssh/master_rsa.pub >> /home/hadoop/.ssh/authorized_keys cat /home/hadoop/.ssh/jobtracker_rsa.pub >> /home/hadoop/.ssh/authorized_keys
3、在JobTracker上拷貝master的公鑰 1、拷貝公鑰 scp hadoop@master:/home/hadoop/.ssh/id_rsa.pub /home/hadoop/.ssh/master_rsa.pub (注:本例中master和JobTracker是同一臺機器,所以相當于自己拷自己的公鑰.....囧......)
2、添加到信任列表 cat /home/hadoop/.ssh/master_rsa.pub >> /home/hadoop/.ssh/authorized_keys
運行階段: 1、啟動hadoop 1、在所有節(jié)點上刪除/home/hadoop/下的tmp文件夾(包括master節(jié)點) sudo rm -r /home/hadoop/tmp (注:tmp文件夾內(nèi)部存放有NameNode的ID信息,如果ID不一樣的話是無法正常連接的,此處的刪除操作是為了保證ID的一致性)
2、在master上格式化NameNode hadoop namenode -format
3、啟動hadoop bin/start-all.sh
4、查看各節(jié)點是否正常啟動 jps (此語句執(zhí)行后,slave節(jié)點中必須有DataNode,master節(jié)點中必須有NameNode,否則啟動失?。?/span>
5、查看整個系統(tǒng)狀態(tài) hadoop dfsadmin -report (此語句執(zhí)行后能顯示當前連接的slave數(shù),即DataNode數(shù))
2、跑wordcount 1、準備測試文件 sudo echo "mu ha ha ni da ye da ye da da" > /tmp/test.txt
2、將測試文件上傳到dfs文件系統(tǒng) hadoop dfs -put /tmp/test.txt multiTest (注:如multiTest目錄不存在的話會自動創(chuàng)建)
3、執(zhí)行wordcount hadoop jar hadoop-mapred-examples0.21.0.jar wordcout multiTest result (注:如result目錄不存在的話會自動創(chuàng)建)
4、查看結(jié)果 hadoop dfs -cat result/part-r-00000
至此集群環(huán)境搭建完畢~!
補充說明: 網(wǎng)上文檔中說的關(guān)于“關(guān)閉防火墻”和“關(guān)閉安全模式”,我們在實踐中并未涉及到,如遇到連接不到datanode的問題,請檢查您的hosts文件中是否最上面多出兩行,如果是的話請刪除,然后重新按照“運行階段”的步驟來。 |
|