搭建的hadoop2.7.7集群,在启动之后,通过jps会发现有缺少进程的情况。
有的会是缺少datanode,有的会缺少namenode,还有的会缺少resoucemanager。
在网上有很多种说法,究其根本无非就那么几个原因:
1、多次格式化造成clusterID不一致导致启动失败
2、yarn-site、core-site、hdfs-site、mapred-site四个配置文件没有配置正确
3、firewall(iptables)、selinux没有关闭
4、启动hadoop集群之前没有格式化集群
(注-1:hadoop集群没有特殊情况下,只格式化一次即可)
(注-2:在哪台节点上格式化,哪台节点就是主节点)
多次格式化造成的进程启动不起来
解决方法-1:
- 关闭hadoop集群,进入到主节点hadoop的目录中
- 执行命令:find ./ -name VERSION
- 返回:./dfs/name/current/VERSION
- vim ./dfs/name/current/VERSION
- 复制:clusterID=CID-6de758ec-871a-40d0-be6d-80cc8a0948a2 这一行
- 进入子节点,重复第2步,返回:./dfs/data/current/VERSION
- vim ./dfs/data/current/VERSION
- 将第五步复制的clusterID替换子节点中的clusterID,每个子节点都替换
- 替换完成,重启hadoop
解决方法-2:hadoop集群重新格式化详细步骤
如果以上方法均没有解决缺少进程的问题
1、关闭集群
2、删除每个节点中hadoop目录下logs中日志文件
3、启动集群
4、假设你的slave1节点缺少datanode进程,那么就登录到slave1节点中,进入到hadoop的logs目录,
查看hadoop-root-datanode-slave1.log文件
示例如下:
[root@slave1 logs]# pwd
/usr/local/src/hadoop-2.7.7/logs
[root@slave1 logs]# ll
总用量 516
-rw-r--r-- 1 root root 189242 6月 6 22:36 hadoop-root-datanode-slave1.log
-rw-r--r-- 1 root root 714 6月 2 06:03 hadoop-root-datanode-slave1.out
-rw-r--r-- 1 root root 714 5月 12 21:55 hadoop-root-datanode-slave1.out.1
-rw-r--r-- 1 root root 714 4月 30 00:54 hadoop-root-datanode-slave1.out.2
-rw-r--r-- 1 root root 0 4月 30 00:54 SecurityAuth-root.audit
drwxr-xr-x 2 root root 6 6月 6 22:36 userlogs
-rw-r--r-- 1 root root 308877 6月 6 22:37 yarn-root-nodemanager-slave1.log
-rw-r--r-- 1 root root 1571 6月 2 06:04 yarn-root-nodemanager-slave1.out
-rw-r--r-- 1 root root 1571 5月 12 21:56 yarn-root-nodemanager-slave1.out.1
-rw-r--r-- 1 root root 1578 4月 30 00:55 yarn-root-nodemanager-slave1.out.2
[root@slave1 logs]# cat hadoop-root-datanode-slave1.log | grep -E 'error|failed'
文章评论