签到成功

知道了

CNDBA社区CNDBA社区

Hadoop 启动没有 datanode 进程 解决方法

2019-01-22 22:10 20786 0 原创 Hadoop
作者: dave

1 现象说明

新搭建的hadoop 3.1.1 的环境,在启动Hadoop时,通过jps目录发现Slave上没有datanode进程。如下:

http://www.cndba.cn/cndba/dave/article/3255

[cndba@hadoopmaster ~]$ jps
23234 ResourceManager
22998 SecondaryNameNode
23575 Jps
22683 NameNode

[cndba@hadoopslave1 ~]$ jps
9682 Jps
9535 NodeManager


[cndba@hadoopslave2 ~]$ jps
9356 Jps
9199 NodeManager

2 clusterID不匹配导致的问题

网上搜了下,网上的说法都是由于进行hadoop格式化的时候没有事先结束所有进程,或者多次进行了format导致的datanode的clusterID 和 namenode的clusterID不匹配,从而在启动后没有datanode进程。

http://www.cndba.cn/cndba/dave/article/3255

解决方法有两种:

方案一: 保留现有数据
  1. 用NameNode节点的~/dfs/name/current/VERSION 中的namenode的clusterID替换所有datanode节点机器中~/dfs/data/current/VERSION中的clusterID。
  2. 重启启动hadoop:start-all.sh

这种方式不影响现有的数据,避免了重新的格式化。http://www.cndba.cn/cndba/dave/article/3255

方案二: 重新格式化
  1. 执行./stop-all.sh关闭集群
  2. 删除存放hdfs数据块的文件夹(hadoop/tmp/),然后重建该文件夹
  3. 删除hadoop下的日志文件logs
  4. 执行hadoop namenode -format格式化hadoop
  5. 重启hadoop集群

3 其他情况

我这里属于另外的情况,并不是clusterID不匹配导致的问题。
重新查看了下启动日志,原来是用户名敲错了:

[cndba@hadoopmaster hadoop]$ start-all.sh
WARNING: Attempting to start all Apache Hadoop daemons as cndba in 10 seconds.
WARNING: This is not a recommended production deployment configuration.
WARNING: Use CTRL-C to abort.
Starting namenodes on [hadoopmaster]
Starting datanodes
ERROR: datanode can only be executed by cbdba.
Starting secondary namenodes [hadoopmaster]
WARNING: YARN_CONF_DIR has been replaced by HADOOP_CONF_DIR. Using value of YARN_CONF_DIR.
Starting resourcemanager
WARNING: YARN_CONF_DIR has been replaced by HADOOP_CONF_DIR. Using value of YARN_CONF_DIR.
Starting nodemanagers
WARNING: YARN_CONF_DIR has been replaced by HADOOP_CONF_DIR. Using value of YARN_CONF_DIR.
[cndba@hadoopmaster hadoop]$

hadoop-env.sh 文件中敲成了cbdba:

export HDFS_DATANODE_USER="cbdba"

修改成cndba后继续启动:

[cndba@hadoopmaster hadoop]$ start-all.sh
WARNING: Attempting to start all Apache Hadoop daemons as cndba in 10 seconds.
WARNING: This is not a recommended production deployment configuration.
WARNING: Use CTRL-C to abort.
Starting namenodes on [hadoopmaster]
Starting datanodes
hadoopslave2: ERROR: Cannot set priority of datanode process 12752
hadoopslave1: ERROR: Cannot set priority of datanode process 13164
Starting secondary namenodes [hadoopmaster]
WARNING: YARN_CONF_DIR has been replaced by HADOOP_CONF_DIR. Using value of YARN_CONF_DIR.
Starting resourcemanager
WARNING: YARN_CONF_DIR has been replaced by HADOOP_CONF_DIR. Using value of YARN_CONF_DIR.
Starting nodemanagers
WARNING: YARN_CONF_DIR has been replaced by HADOOP_CONF_DIR. Using value of YARN_CONF_DIR.
[cndba@hadoopmaster hadoop]$

又报错:

http://www.cndba.cn/cndba/dave/article/3255

hadoopslave2: ERROR: Cannot set priority of datanode process 12752

上从库查看datanode日志:http://www.cndba.cn/cndba/dave/article/3255

http://www.cndba.cn/cndba/dave/article/3255
http://www.cndba.cn/cndba/dave/article/3255

************************************************************/
2019-01-23 05:23:23,501 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: registered UNIX signal handlers for [TERM, HUP, INT]
2019-01-23 05:23:23,619 ERROR org.apache.hadoop.conf.Configuration: error parsing conf hdfs-site.xml
com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character ' ' (code 12288 / 0x3000) in epilog; expected '<'
 at [row,col,system-id]: [50,17,"file:/home/cndba/hadoop/etc/hadoop/hdfs-site.xml"]
    at com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:653)
    at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2133)
    at com.ctc.wstx.sr.BasicStreamReader.closeContentTree(BasicStreamReader.java:2991)
    at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2734)

这里表面上看是权限问题,但从日志看是hdfs-site.xml 配置文件有问题,修改配置文件后重启系统,正常:http://www.cndba.cn/cndba/dave/article/3255

[cndba@hadoopmaster hadoop]$ start-all.sh
WARNING: Attempting to start all Apache Hadoop daemons as cndba in 10 seconds.
WARNING: This is not a recommended production deployment configuration.
WARNING: Use CTRL-C to abort.
Starting namenodes on [hadoopmaster]
Starting datanodes
Starting secondary namenodes [hadoopmaster]
WARNING: YARN_CONF_DIR has been replaced by HADOOP_CONF_DIR. Using value of YARN_CONF_DIR.
Starting resourcemanager
WARNING: YARN_CONF_DIR has been replaced by HADOOP_CONF_DIR. Using value of YARN_CONF_DIR.
Starting nodemanagers
WARNING: YARN_CONF_DIR has been replaced by HADOOP_CONF_DIR. Using value of YARN_CONF_DIR.
[cndba@hadoopmaster hadoop]$

查看进程,也没有问题:http://www.cndba.cn/cndba/dave/article/3255http://www.cndba.cn/cndba/dave/article/3255

[cndba@hadoopmaster hadoop]$ jps
13030 SecondaryNameNode
12791 NameNode
13271 ResourceManager
13752 Jps
[cndba@hadoopmaster hadoop]$

[cndba@hadoopslave2 logs]$ jps
13587 Jps
13302 DataNode
13422 NodeManager
[cndba@hadoopslave2 logs]$

[root@hadoopslave1 ~]# jps
13876 NodeManager
14026 Jps
13756 DataNode
[root@hadoopslave1 ~]#

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2296
    原创
  • 3
    翻译
  • 582
    转载
  • 198
    评论
  • 访问:8508610次
  • 积分:4477
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ