引文地址:http://www.cnblogs.com/welbeckxu/archive/2011/12/30/2306887.html
接上一篇《ubuntu部署hadoop之僞分佈模式》。
安裝一個Hadoop集羣時,需要專門指定一個服務器作爲主節點。
三臺虛擬機搭建的集羣:(搭建集羣時主機名不能一樣,主機名在/etc/hostname修改)
master機器:(集羣的主節點,駐留NameNode和JobTracker守護進程)
IP:10.1.229.1 機器名:xukangde-01
slaves機器:(集羣的從節點,駐留DataNode和TaskTracker守護進程)
IP:10.1.229.2 機器名:xukangde-02
IP:10.1.229.3 機器名:xukangde-03
這三臺機器都安裝好了hadoop-0.20.2,JDK和ssh。
這三臺機器都要編輯/etc/hosts
增加:
10.1.229.1 xukangde-01 10.1.229.2 xukangde-02 10.1.229.3 xukangde-03
SSH Access
master必須能以passless ssh訪問slaves
xukangde@xukangde-01:~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub xukangde@xukangde-02 xukangde@xukangde-01:~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub xukangde@xukangde-03
執行以上的命令都需要輸入對方的密碼。
完成後,可以在master上分別運行:
xukangde@xukangde-01:~$ ssh xukangde-02 xukangde@xukangde-01:~$ ssh xukangde-03
看是否不需要輸入密碼,如果不需要則設置正確。
配置
只對於master機器(xukangde-01):
更新conf/masters文件如下:
xukangde-01
更新conf/slaves文件如下:
xukangde-01 xukangde-02 xukangde-03
對於這三臺機器:
更新三個配置文件的相關屬性
<!-- In: conf/core-site.xml --> <property> <name>fs.default.name</name> <value>hdfs://xukangde-01:9000</value> ------定位文件系統的NameNode </property> <!-- In: conf/mapred-site.xml --> <property> <name>mapred.job.tracker</name> <value>xukangde-01:9001</value> --------定位JobTrecker所在主節點 </property> <!-- In: conf/hdfs-site.xml --> <property> <name>dfs.replication</name> <value>3</value> -----------增大HDFS備份參數 </property>
第一次運行
首先需要Format namenode
(格式化之前最好在所有機器上清空hdfs/data,hdfs/name,以免造成衝突)
在xukangde-01上運行:
xukangde@xukangde-01:~/hadoop$ bin/hadoop namenode -format
開啓集羣
開啓 HDFS daemons
在xukangde-01上運行:
xukangde@xukangde-01:~/hadoop$ bin/start-dfs.sh
開啓後,可以在master和slave上運行jps命令,查看開啓的daemons
開啓MapReduce daemons
在xukangde-01上運行:
xukangde@xukangde-01:~/hadoop$ bin/start-mapred.sh
可以在master和slave上運行jps命令,查看開啓的daemons
運行MapReduce Job
在xukangde-01機器上運行WordCount:
首先在dfs中創建input目錄
xukangde@xukangde-01:~/hadoop$ bin/hadoop dfs -mkdir input
將conf中的文件拷貝到dfs中的input:
xukangde@xukangde-01:~/hadoop$ bin/hadoop dfs -copyFromLocal conf/* input
運行WordCount
xukangde@xukangde-01:~/hadoop$ bin/hadoop jar hadoop-0.20.2-examples.jar wordcount input output
顯示輸出結果文件:
xukangde@xukangde-01:~/hadoop$ bin/hadoop dfs -cat output/*
關閉集羣
關閉MapReduce daemons
在master上運行:
xukangde@xukangde-01:~/hadoop$ bin/stop-mapred.sh
關閉HDFS daemons
在master上運行:
xukangde@xukangde-01:~/hadoop$ bin/stop-dfs.sh
至此,在ubuntu的hadoop集羣所運行的三種模式都已經部署好了。