在完成單節(jié)點(diǎn)環(huán)境搭建的基礎(chǔ)上進(jìn)行集群環(huán)境搭建
單節(jié)點(diǎn)搭建:http://vampire1126.iteye.com/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
(注:打開后將里面的內(nèi)容全部刪除,不刪除的話啟動(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í)符可以隨便寫,主要是起到一個(gè)映射作用)
2、進(jìn)入hadoop目錄下,配置conf下的masters文件
cd /usr/local/hadoop
sudo gedit conf/masters
(打開后將里面內(nèi)容清空,然后添加“master”或者master的IP“192.168.1.10”,此處即是hosts中配置的映射,填master或者直接填I(lǐng)P都是一樣的)
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
(因?yàn)橐淹瓿蓡喂?jié)點(diǎn)配置,因此只需要修改就行了。打開后將第一個(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)上可有可無)
sudo gedit conf/hdfs-site.xml
(打開后在空的<configuration> </configuration>中添加如下配置
6、配置conf下的mapred-site.xml文件
sudo gedit conf/mapred-site.xml
(打開后將<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不一樣的話是無法正常連接的,此處的刪除操作是為了保證ID的一致性)
2、在master上格式化NameNode
hadoop namenode -format
3、啟動(dòng)hadoop
bin/start-all.sh
4、查看各節(jié)點(diǎn)是否正常啟動(dòng)
jps
(此語句執(zhí)行后,slave節(jié)點(diǎn)中必須有DataNode,master節(jié)點(diǎn)中必須有NameNode,否則啟動(dòng)失敗)
5、查看整個(gè)系統(tǒng)狀態(tài)
hadoop dfsadmin -report
(此語句執(zhí)行后能顯示當(dāng)前連接的slave數(shù),即DataNode數(shù))
2、跑wordcount
1、準(zhǔn)備測試文件
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目錄不存在的話會(huì)自動(dòng)創(chuàng)建)
3、執(zhí)行wordcount
hadoop jar hadoop-mapred-examples0.21.0.jar wordcout multiTest result
(注:如result目錄不存在的話會(huì)自動(dòng)創(chuàng)建)
4、查看結(jié)果
hadoop dfs -cat result/part-r-00000
至此集群環(huán)境搭建完畢~!
補(bǔ)充說明:
網(wǎng)上文檔中說的關(guān)于“關(guān)閉防火墻”和“關(guān)閉安全模式”,我們在實(shí)踐中并未涉及到,如遇到連接不到datanode的問題,請檢查您的hosts文件中是否最上面多出兩行,如果是的話請刪除,然后重新按照“運(yùn)行階段”的步驟來。
聯(lián)系客服