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