Hadoop完全分散式模式的安裝和配置

541732025發表於2013-09-01
一,配置Host檔案
配置不同節點對應的ip
在生產環境下,成百上千的機器,不可能一個一個的去修改host檔案,解決的方法是透過DNS伺服器,
在Linux中透過安裝bind來實現DNS伺服器,安裝好之後,在/etc/resolv.conf中新增nameserver 來指定DNS伺服器的地址,
最後,透過nslookup來檢測DNS伺服器是否安裝成功。

二,建立Hadoop執行帳號
每一個節點新建一個賬號

三,配置ssh免密碼連入
1,ssh-keygen -t rsa,在master節點的user目錄下生成公鑰與金鑰,將公鑰複製至slave節點user/.ssh目錄下,重新命名為authorized_keys,同樣的操作在slave節點下也執行一次,這樣就實現了master與slave互連免密碼。
2,第一步只能保證master與slave互連免密碼連入,但是後面啟動hadoop時需要節點自己本身互連,所以還需要將每個節點.ssh下的id_rsa.pub複製至當前目錄下的authorized_keys,這樣,hadoop叢集中有幾個節點,authorized_keys中就有幾個id_rsa.pub內容,所有節點都一樣。
在生產環境中,需運用到NFS,如果hadoop使用者的home目錄在NFS檔案系統中,則金鑰可以透過鍵入以下指令在整個叢集共享:%cat  ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

四,下載並解壓hadoop安裝包
下載穩定版(1.1.2)

五,配置namenode,修改site檔案
1,core-site.xml
指定namenode節點,以及hadoop臨時目錄(這個配置很重要,否則,hadoop預設將臨時檔案放到系統的臨時檔案/tmp下,當伺服器重啟,hadoop叢集就全沒了)

2,hdfs.site.xml
指定複製因子,有幾個資料節點,就設定幾
設定dfs.blocksize,預設64M
指定namenode,以及secdonaryNamenode獲取後設資料的位置

3,mapred-site.xml
設定jobtracker所在節點

六,配置hadoop-env.sh
主要配置JAVA_HOME、HADOOP_CLASSPATH等

七,配置master和slave檔案
分別指定mater與slave的節點
master指定namenode、secondnameNode、jobtracker節點地址
slave指定dataNode、tasktracker
master、slave不需要在每個節點都指定,在nameNode節點上指定就可以了。當你往叢集中增刪節點,只需要改變nameNode上的master、slave即可

八,向各節點複製配置好的hadoop
無論是哪個節點,hadoop的配置都是一樣的

九,啟動Hadoop前應關閉防火牆
1,永久生效,重啟後不會復原(相應地,配置重啟生效)
chkconfig iptables on/off
2,即時生效,重啟後復原(配置立馬生效)
server iptables start/stop

十,格式化namenode
bin/hadoop namenode -format

十一,啟動hadoop
bin/start-all.sh

十二,用jps檢驗各後臺程式是否成功啟動
master應該有NameNode、SecondaryNameNode、JobTracker這3個程式
slave應該有DataNode、TaskTracker這2個程式

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28912557/viewspace-772004/,如需轉載,請註明出處,否則將追究法律責任。

相關文章