Hadoop集群配置全程跟蹤報(bào)道
本節(jié)和大家學(xué)習(xí)一下Hadoop集群配置以及在配置過程中遇到的一些問題,相信通過本節(jié)的介紹大家對(duì)Hadoop的配置有新的認(rèn)識(shí),讓我們一來學(xué)習(xí)Hadoop集群配置吧。
Hadoop集群配置
hadoop的單機(jī)配置在hadoop的文檔中已經(jīng)有了詳細(xì)的介紹,當(dāng)然,集群的配置也有詳細(xì)描述(Hadoop的中文文檔:http://www.hadoop.org.cn/document/cn/r0.18.2/)。但在集群配置中必然會(huì)遇到各種問題,下面我就描述下我配置Hadoop集群的過程和遇到的問題,其中解釋不清楚或者不正確的地方,還請(qǐng)諒解。
一.Hadoop配置:
p=vu<xXtD
首先,是準(zhǔn)備工作,就是在各個(gè)節(jié)點(diǎn)安裝相應(yīng)的軟件。
GU\}}j]
1.本次Hadoop集群配置中,使用VMware虛擬出三個(gè)虛擬機(jī)(Ubuntu8.04TL),三個(gè)節(jié)點(diǎn)的用戶名都是hadoop,使用橋接,這樣各節(jié)點(diǎn)跟主機(jī)使用相同的IP段,可以通過外界訪問namenode。三個(gè)節(jié)點(diǎn)的主機(jī)名分別是一個(gè)namenode節(jié)點(diǎn):NameNode(ip:125.216.227.**1),兩個(gè)datanode節(jié)點(diǎn):DataNode1(ip:125.216.227.**2)和DataNode2(125.216.227.**3)。然后在網(wǎng)絡(luò)中配置好各節(jié)點(diǎn)的名稱。
sHx>UvN6
2.本次Hadoop集群配置采用截至到現(xiàn)在最穩(wěn)定的0.18版本的Hadoop,將Hadoop解壓到Hadoop部署目錄結(jié)構(gòu)如下:/home/hadoop/HadoopInstall,所有的hadoop版本放在這個(gè)目錄中。將hadoop0.18.0壓縮包解壓至HadoopInstall中,為了方便以后升級(jí),建議建立一個(gè)鏈接指向要使用的hadoop版本,不妨設(shè)為hadoop:$ln-shadoop0.18.0hadoop
>Q+Bw"W<
3.在各節(jié)點(diǎn)安裝好jdk和ssh,jdk需加入環(huán)境變量。因?yàn)樵贖adoop啟動(dòng)以后,Namenode是通過SSH(SecureShell)來啟動(dòng)和停止各個(gè)節(jié)點(diǎn)上的各種守護(hù)進(jìn)程的,這就需要在節(jié)點(diǎn)之間執(zhí)行指令的時(shí)候是不需要輸入密碼的方式,故我們需要配置SSH使用無密碼公鑰認(rèn)證的方式。該認(rèn)證對(duì)于hadoop的集群配置只需單向認(rèn)證即可,方法如下:
(1)在namenode節(jié)點(diǎn)下通過如下命令:
$scpauthorized_keys(slaveip):/home/username/.ssh#把slave的授權(quán)文件拷貝到master3>Ts7wM
$catid_dsa.pub>>authorized_keys
$chmode644authorized_key
(2)在datanode節(jié)點(diǎn)下:&R:$h*Wt|
$chmode644authorized_key
V)CS,w
4.現(xiàn)在開始配置hadoop的conf目錄下的配置文件:先配置環(huán)境配置文件:hadoop-env.sh,具體配置請(qǐng)查看Hadoop文檔。在此貼出我的部分配置信息(其他默認(rèn))如下,以供參考:
2`qO'V3Q
#Thejavaimplementationtouse.Required.[hE09W
exportJAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.07e)kN%JqW
exportHADOOP_HOME=/home/hadoop/HadoopInstall/hadoop?z>7&
exportHADOOP_CONF_DIR=$HADOOP_HOME/conf5(0f"zY
exportHADOOP_PID_DIR=/home/hadoop/HadoopInstall/PID@~v|t{G
exportPATH=$PATH:$HADOOP_HOME/bind?G~k[C!a
#ExtraJavaCLASSPATHelements.Optional.m%Ah]x;
#exportHADOOP_CLASSPATH=
再配置hadoop-site.xml。具體配置同樣查看文檔,代碼:
(1)NameNode的配置:
(2)DataNode的配置信息:
(3)配置slave和master文件,slave文件保存了datanode的ip信息,而master則保存了namenode的ip信息。
tHlKo0S$0
然后是查看Hadoop集群配置是否配置成功,并啟動(dòng)hadoop。
配置好后先在/home/hadoop/HadoopInstall下建立/tmp目錄。然后在hadoop的bin目錄下:
$jps
會(huì)返回該節(jié)點(diǎn)的配置信息,如下:
20198NameNode
20318SecondaryNameNode
20684Jps
20383JobTracker
同樣,在datanode也會(huì)返回該datanode解嗲的信息:
14784TaskTracker
17044Jps
14683DataNode
CG!/Lbd
然后進(jìn)入hadoop目錄下:
$bin/hadoopnamenode-format#在NameNode格式化一個(gè)新的分布式文件系統(tǒng)thWQU"z4
$bin/start-dfs.sh#啟動(dòng)namenode上的hadoop
$bin/start-mapred.sh#啟動(dòng)JobTracker^MJTlRUb
$netstat-tnl#查看50070,54310,50090端口是否啟動(dòng)
@]$qJFXx
瀏覽NameNode和JobTracker的網(wǎng)絡(luò)接口,它們的地址默認(rèn)為:
NameNode-http://localhost:50070/
JobTracker-http://localhost:50030/
最后將配置好的Hadoop打包發(fā)送到各個(gè)slave:
xlQl1lOX
$cd/home/hadoop/HadopInstallHZ$q`e
$tar-cvfhadoop-0.18.0.tar.gzhadoop-0.18.0/0Y7b$~n'Y
$scp-rhadoop-0.18.0.tar.gzhadoop@slave1:/home/hadoop/HadopInstallL@>+iZSO
$scp-rhadoop-0.18.0.tar.gzhadoop@slave2:/home/hadoop/HadopInstall
二.Hadoop集群配置中遇到的問題
(1)在重新格式化一個(gè)新的分布式文件時(shí),需要將你NameNode上所配置的dfs.name.dir這一namenode用來存放NameNode持久存儲(chǔ)名字空間及事務(wù)日志的本地文件系統(tǒng)路徑刪除,同時(shí)將各DataNode上的dfs.data.dir的路徑DataNode存放塊數(shù)據(jù)的本地文件系統(tǒng)路徑的目錄也刪除。如本此配置就是在NameNode上刪除/home/hadoop/NameData,在DataNode上刪除/home/hadoop/DataNode1和/home/hadoop/DataNode2。
這是因?yàn)镠adoop在格式化一個(gè)新的分布式文件系統(tǒng)時(shí),每個(gè)存儲(chǔ)的名字空間都對(duì)應(yīng)了建立時(shí)間的那個(gè)版本(可以查看/home/hadoop/NameData/current目錄下的VERSION文件,上面記錄了版本信息),在重新格式化新的分布式系統(tǒng)文件時(shí),最好先刪除NameData目錄。必須刪除各DataNode的dfs.data.dir。這樣才可以使namedode和datanode記錄的信息版本對(duì)應(yīng)。
否則會(huì)出現(xiàn)能夠啟動(dòng)datanode,但無法訪問,也無法結(jié)束的錯(cuò)誤,如下:
hadoop@HadoopHost:~/HadoopInstall/hadoop$bin/stop-all.sho(iv=(o
stoppingjobtrackerlLD-QO}/
125.216.227.**2:stoppingtasktrackerUO%VuC5B
125.216.227.**3:stoppingtasktracker@R+bR<}]
stoppingnamenodey>+xdD0+
125.216.227.**2:nodatanodetostoprN3i5.*/t
125.216.227.**3:nodatanodetostop7/*a
125.216.227.**1:stoppingsecondarynamenode
以后有問題繼續(xù)添加,希望大家予以指教。本節(jié)有關(guān)Hadoop集群配置方面的內(nèi)容介紹到這里。
【編輯推薦】