經過前邊的積累,今天終於實現了叢集環境下部署Hadoop,並成功運行了官方的例子。
工作如下:
兩台機器:
NameNode:上網小本,3G記憶體,機器名:YP-X100e,IP:192.168.101.130。
DataNode:虛擬機器,Win7下載VMWare10中虛擬Ubuntu14,虛擬機器名:ph-v370,IP:192.168.101.110
確保可互相ping通,按照機器名和IP配置各自機器的/etc/hosts檔案和/etc/hostname檔案,我的hosts配置內容如下
127.0.0.1 localhost 192.168.101.130 YP-X100e 192.168.101.110 ph-v370
安裝環境,請參考
Ubuntu14下Hadoop開發<1> 基礎環境安裝
Ubuntu14下Hadoop開發<2> 編譯64位Hadoop2.4
配置各種配置資訊,請參考
Hadoop 2.4.0完全分布式平台搭建、配置、安裝
Setting up a Single Node Cluster.
注意事項:
A:主從機的ssh設定,主機中在終端中輸入
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
拷貝檔案到從節點
scp authorized_keys ph-v370:~/.ssh/
剛開始我一直失敗的原因是使用者不一致,導致一直無法登陸ssh,後來我建立了hadoop使用者,並授予hadoop檔案夾的許可權
scp authorized_keys ph-v370:~/.ssh/
剛開始我一直失敗的原因是使用者不一致,導致一直無法登陸ssh,後來我建立了hadoop使用者,並授予hadoop檔案夾的許可權
useradd -m hadoop passwd hadoop chown hadoop:hadoop hadoop-2.4.0
更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/Servers/cloud-computing/
重新用hadoop的使用者進行操作就可以了(包括啟動hadoop服務等,最好都是用這個使用者)
B:執行start-dfs.sh,子節點報異常“WARNorg.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server:YP-X100e/192.168.101.130:9000”
這裡有一個卡點,需要修改主節點的hosts檔案,注釋掉127.0.1.1這行,你可以在注釋之前執行
netstat -an | grep 9000
你會看到9000連接埠被127.0.1.1佔用,所以會出現異常
C:格式檔案系統的命令應該是
hdfs namenode -format
D:Hadoop的服務和Yarn的服務需要單獨啟動
start-dfs.sh start-yarn.sh
E:在主節點配置好所有的設定檔,直接都拷貝到從節點即可
F:跟做單節點例子的時候不同,我在拷貝檔案的時候需要制定確切的路徑,如這個:
原來直接執行 $ bin/hdfs dfs -put etc/hadoop input 現在需要執行 $ bin/hdfs dfs -put etc/hadoop /user/chenph/input
G:查進程使用命令是:PS -ef | grep ‘搜尋內容’,殺進程是:kill -s 9 進程號,查看防火牆是:sudo ufw status
H:可訪問主節點查看Hadoop的狀態http://YP-X100e:50070,下圖可看到,有一個活動的從節點,也就是我的虛擬機器中的那個Ubuntu
作者:csdn部落格 yueritian