在ubuntu部署分佈式hadoop

安裝一個Hadoop集羣時,須要專門指定一個服務器做爲主節點。node

三臺虛擬機搭建的集羣:(搭建集羣時主機名不能同樣,主機名在/etc/hostname修改)服務器

master機器:(集羣的主節點,駐留NameNode和JobTracker守護進程less

IP:10.61.1.21        機器名:wangwei1ssh

slaves機器:(集羣的從節點,駐留DataNode和TaskTracker守護進程oop

IP:10.61.1.22        機器名:wangwei2spa

IP:10.61.1.23        機器名:wangwei3code

這三臺機器都安裝好了hadoop-1.0.3,JDK和ssh。orm

這三臺機器都要編輯/etc/hostsxml

增長:blog

10.61.1.21    wangwei1
10.61.1.22    wangwei2
10.61.1.23    wangwei3
SSH Access

master必須能以passless ssh訪問slaves

wangwei@wangwei1:~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub wangwei@wangwei2
wangwei@wangwei1:~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub wangwei@wangwei3

執行以上的命令都須要輸入對方的密碼。

完成後,能夠在master上分別運行:

wangwei@wangwei1:~$ ssh wangwei2
wangwei@wangwei1:~$ ssh wangwei3

看是否不須要輸入密碼,若是不須要則設置正確。

配置

只對於master機器(wangwei1):

更新conf/masters文件以下:

wangwei1

更新conf/slaves文件以下:

wangwei1

wangwei2

wangwei3

對於這三臺機器

更新三個配置文件的相關屬性

複製代碼
<!-- In: conf/core-site.xml -->
<property>
<name>fs.default.name</name>
<value>hdfs://wangwei1:9000</value> ------定位文件系統的NameNode
</property>

<!-- In: conf/mapred-site.xml -->
<property>
<name>mapred.job.tracker</name>
<value>wangwei1: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,以避免形成衝突)

在wangwei1上運行:

wangwei@wangwei1:~/hadoop$ bin/hadoop namenode -format
開啓集羣
開啓 HDFS daemons

在wangwei1上運行:

wangwei@wangwei1:~/hadoop$ bin/start-dfs.sh

開啓後,能夠在master和slave上運行jps命令,查看開啓的daemons

開啓MapReduce daemons

在wangwei1上運行:

wangwei@wangwei1:~/hadoop$ bin/start-mapred.sh

能夠在master和slave上運行jps命令,查看開啓的daemons

運行MapReduce Job

在wangwei1機器上運行WordCount:

首先在dfs中建立input目錄

wangwei@wangwei1:~/hadoop$ bin/hadoop dfs -mkdir input

將conf中的文件拷貝到dfs中的input:

wangwei@wangwei1:~/hadoop$ bin/hadoop dfs -copyFromLocal conf/* input
運行WordCount
 
 
wangwei@wangwei1:~/hadoop$ bin/hadoop jar hadoop-1.0.3-examples.jar wordcount input output
顯示輸出結果文件:
 
 
wangwei@wangwei1:~/hadoop$ bin/hadoop dfs -cat output/*
關閉集羣
關閉MapReduce daemons

在master上運行:

 
 
wangwei@wangwei1:~/hadoop$ bin/stop-mapred.sh

關閉HDFS daemons

在master上運行:

 
 
wangwei@wangwei1:~/hadoop$ bin/stop-dfs.sh
相關文章
相關標籤/搜索