Hadoop重启,部分进程没有成功开启

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop重启,部分进程没有成功开启相关的知识,希望对你有一定的参考价值。

参考技术A

一段时间后,重新启动hadoop之后,没有显示应有的五个进程。一般情况下从logs目录出发,进行修改。最经常报的错误是:

这种情况下一般是端口占用,执行命令 netstat -anp |grep 端口号 ,查看占用该端口的进程,并执行 kill 9 进程号 ,再次重启即可。

根据报错信息 java.io.IOException: Incompatible clusterIDs in /root/hadoop/dfs/data: namenode clusterID = CID-deb400ff-00be-4e84-b647-6be4edbe6abb; datanode clusterID = CID-83f6523b-7765-4eb1-abde-5887636778c9 和 博客 可知, namenode和datanode的clusterID不同造成的 解决办法:
根据日志中的路径, cd /root/hadoop/dfs/ 下面有data和name两个文件夹,
将 /root/hadoop/dfs/name/current 下的 VERSION中的clusterID 覆盖掉 /root/hadoop/dfs/data/current 下的 VERSION的clusterID 即可。

全部修改完毕后,重启即可。

Hadoop开启后jps显示只有jps

之前在用Mapreduce写代码时,在DFS Location下的会报一个error,大体的意思就是与主机名相关的错误

然后我就觉得可能时Hadoop开启时出了错误,然后我就重启了Hadoop,jps查看了一下,果然出现了错误

可见jps命令输入后什么都没有,原本应该如下图所示

后来我就在网上百度,发现出现错误的原因时我主机名和配置文件不一致造成的,根据Hadoop启动时的提示,从这随便挑选一个

例如; starting namenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-namenode-ZMZ.out”,其中 ZMZ 时主机名,但其实

启动日志信息是记录在 /usr/local/hadoop/logs/hadoop-hadoop-namenode-ZMZ.log 中,所以应该查看这个后缀为 .log 的文件,果不其然

在对应的log中,注意此ip

然后打开host文件,输入命令

sudo vi /etc/hosts 

发现没有上图中.log 文件对应的ip地址,所以要修改host文件,把目前主机名及其对应的ip地址插进去

 

 然后重启网络,输入

sudo /etc/init.d/networking restart

或者

reboot

重新启动计算机生效

然后我再次jps,发现又缺少了DataNode

于是在网上找到的解决办法,主要是参照林子雨的教程走的

 此外,若是 DataNode 没有启动,可尝试如下的方法(注意这会删除 HDFS 中原有的所有数据,如果原有的数据很重要请不要这样做)

# 针对 DataNode 没法启动的解决方法
./sbin/stop-dfs.sh   # 关闭
rm -r ./tmp     # 删除 tmp 文件,注意这会删除 HDFS 中原有的所有数据
./bin/hdfs namenode -format   # 重新格式化 NameNode
./sbin/start-dfs.sh  # 重启

运行后会删除HDFS原有数据,注意保存

 然后再次jps,发现正常运行了

 

 

以上是关于Hadoop重启,部分进程没有成功开启的主要内容,如果未能解决你的问题,请参考以下文章

搭建hadoop

Hadoop开启后jps显示只有jps

判断hadoop伪分布式安装模式是否成功启动

hadoop.home.dir在哪儿

修改php.ini后,模块没有开启?

Elasticsearch 重启