-
搭建集羣的提前準備:
機器名 機器IP 用 途 描 述
hadoop1 192.168.242.130 namenode/secondaryNamenode/jobTracker 64位 rhel6,jdk6
hadoop2 192.168.242.131 datanode/taskTracker 64位rhel6,jdk6
hadoop3 192.168.242.132 datanode/taskTracker 64位rhel6,jdk6
-
在hadoop1的配置文件/etc/hosts中配置其他hostname
複製該文件到其他節點,使用命令scp /etc/hosts hadoop2:/etc/ || scp /etc/hosts hadoop3:/etc/
-
配置節點之間兩兩可以免密碼ssh登陸
ssh-copy-id -i hadoop2
ssh-copy-id -i hadoop3
-
把hadoop1中hadoop的目錄logs和tmp刪除
rm -rf $HADOOP_HOME/tmp rm -rf $HADOOP_HOME/logs
-
把jdk、hadoop還有環境變量配置文件複製到其他節點
scp -r /usr/local/jdk hadoop1:/usr/local
-
修改節點hadoop1上$HADOOP_HOME/conf/slaves文件,把值改爲hadoop2和hadoop3
(注意):在slaves文件中hadoop2、hadoop3要分行
-
修改masters文件,該文件指定SecondaryNameNode所在的節點
-
在hadoop1上格式化
hadoop NameNode -format
-
在hadoop1上啓動
start-all.sh
====================================================================================================================================
問題 : 集羣啓動之後用 jps 命令發現有部分結點的 DataNode 沒有起來
(這種問題一般出現在虛擬機 hadoop2、hadoop3 是通過Clone的)
解決方法:
(1)在hadoop1節點使用stop-all.sh關閉集羣
(2)在hadoop1、hadoop2、hadoop3節點使用jps查看,關閉hadoop的java進程。
kill -9 xxxx
(3)把hadoop1、hadoop2、hadoop3節點的$HADOOP_HOME/tmp目錄刪除
rm -rf /usr/local/hadoop/tmp/*