-
搭建集群的提前准备:
机器名 机器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/*