Hadoop启动datanode失败,clusterId有问题

问题:

搭建伪Hadoop集群的时候,运行命令:

hdfs namenode -format

格式化或者说初始化namenode。

然后用命令:

start-dfs.sh

来启动hdfs时,jps发现datanode先是启动了一下,然后就挂掉了,在http://192.168.195.128:50070 (HDFS管理界面)也看不到datanode的信息。

然后去datanode的日志上面看,看到这样的报错:

出错原因:(来自博客https://blog.csdn.net/qq_30136589/article/details/51638069)

hadoop的升级功能需要data-node在它的版本文件里存储一个永久性的clusterID,当datanode启动时会检查并匹配namenode的版本文件里的clusterID,如果两者不匹配,就会出现"Incompatible clusterIDs"的异常。
  每次格式化namenode都会生成一个新的clusterID, 如果只格式化了namenode,没有格式化此datanode, 就会出现”java.io.IOException: Incompatible namespaceIDs“异常。
  参见官方CCR[HDFS-107]

这就解释了,为什么我第一次是成功的,后面一直都datanode挂掉的情况。

因为第一次成功后,每次再跑hdfs之前我都格式化或者说初始化了hdfs的配置。然后,namenode的clusterId就会清空,在你跑start-dfs.sh的时候,就会重新生成一个clusterId。但你datanode没有初始化噢,就是说datanode里面的那个clusterId还是之前那个,于是就出现了两者不匹配,报错了。

解决方法:

1.在namenode机器上:   找到${dfs.namenode.name.dir}/current/VERSION 里找到clusterID。这个dfs.namenode,name.dir在hdfs-site.xml可以找到你这个路径的真正路径。:

这里的话就是在/home/hadoop/data/name/current下找到VERSION文件,然后里面有个clusterId,找到它复制了:

2.在出问题的datanode上:    找到$dfs.datanode.data.dir,这个也是在hdfs-site.xml配置文件可以找到这个路径具体的位置:

像我的机器,就是在/home/hadoop/data/data/current下找到VERSION文件,然后里面也有个clusterId:

然后你要做的就是把(1)中复制的namenode的clusterId覆盖了出问题的datanode的clusterId。

3.在问题节点重新重启你的datanode,也就是重新跑命令:

start-dfs.sh

然后datanode就重新跑起来了。在浏览器上访问那个管理界面也看到datanode了:

注意:

1.配置完clusterId后不要再hdfs namenode -format格式化或者说初始化namenode了。

2.记得把所有机器的防火墙给关了,不然可能通信上会有所拦截。(反正我一开始没关,然后配好了clusterId在浏览器的Hadoop管理界面上没能看到datanode,一关掉所有机器的防火墙就好了~)

原文地址:https://www.cnblogs.com/wangshen31/p/9900987.html

时间: 2024-08-26 01:04:47

Hadoop启动datanode失败,clusterId有问题的相关文章

hadoop启动dfs失败(奇葩得解决方法)

[[email protected]_master sbin]$ ./start-dfs.sh Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namenode.rpc-address is not configured.Starting namenodes on [] 而且每台机器都启动了namenode,datanode,但是都没有启动成功... jps看不到任何东西.启动失败

Hadoop在linux下无法启动DataNode

最近重新捡起了Hadoop,所以博客重新开张- 首先描述一下我的问题:这次我使用eclipse在Ubuntu上运行hadoop程序.首先,按照厦门大学数据库实验室的eclipse下运行hadoop程序的教程配置好了eclipse,然后在命令行启动Hadoop.在eclipse界面中,有input文件夹,右键这个文件家有一个Upload files to DFS,通过这个上传之后,发现上传的文件大小为0.0. 解决方法: 首先提一句真是粗心毛病一定要改....在命令行的启动hadoop的时候没有仔

hadoop启动,DataNode报错”Incompatible clusterIDs“

启动namenode,通过50070端口查看,发现livenode只有一个--namenode,查看datanode日志,发现有”Incompatible clusterIDs“错误,提示很明显,namenode和datanode的集群id不一致 解决办法:找到core-site.xml配置文件,进入”dfs.datanode.data.dir“配置项下的目录,在current目录下有一VERSION文件,比较namenode和datanode里这个文件中的clusterID,发现不一致,因此只

hadoop启动后,jps命令后发现nodename启动失败,检查日志报错:FSNamesystem initialization failed

1. 基本信息 hadoop    版本 hadoop-0.20.205.0.tar.gz 操作系统   ubuntu 2. 问题 在使用Hadoop开发初期的时候遇到一个问题. 每次重启系统后发现不能正常运行hadoop.必须执行  bin/hadoop namenode -format  进行格式化才能成功运行hadoop,但是也就意味着以前记录的name等数据丢失. 查询日志发现错误: 21:08:48,103 INFO org.apache.hadoop.hdfs.server.name

Hadoop重新格式namenode后无法启动datanode的问题

这个很简单的哇~ 格式化namenode之后就会给namenode的ClusterId重新生成,导致与datanode中的ClusterId不一致而无法启动datanode 解决方法: 进入hadoop/dfs/data/current 找到version文件 进入hadoop/dfs/name/current 找到version文件 将name中的 version文件中的ClusterId复制到data/current下的version中,使ClusterId一致. 原文地址:https://

hadoop无法启动DataNode问题

由于种种原因,今天重新安装hadoop集群,清空了/tmp下的目录,重启集群,hadoop namenode -format 之后  start-all   但是没有发现DataNode的守护进程,查了些资料发现重 复格式化namenode之后会造成current/VERSION中id不同,因此不能启动datanode 解决如下图 将前面/data/下的namespaceID:改为后面的namespaceID:重新启动hadoop集群,问题即可解决.

hadoop 启动的时候datanode报错 Problem connecting to server

刚配置好的hadoop,namenode可以正常开启,但是datanode却不停的报错,并且不能正常启动: 2014-05-04 10:43:33,970 WARNorg.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server:hadoop1/192.168.10.22:9000 2014-05-04 10:43:55,009 INFOorg.apache.hadoop.ipc.Client: Retry

解决Hadoop启动报错:File /opt/hadoop/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1

今天启动hadoop时,发现datanode启动不了,查看日志发现出现以下的错误: java.io.IOException: File /opt/hadoop/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1 at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem

hadoop格式化:java.io.IOException: Incompatible clusterIDs in /home/lxh/hadoop/hdfs/data: namenode clusterID

1 概述  解决hadoop启动hdfs时,datanode无法启动的问题.错误为: java.io.IOException: Incompatible clusterIDs in /home/lxh/hadoop/hdfs/data: namenode clusterID = CID-a3938a0b-57b5-458d-841c-d096e2b7a71c; datanode clusterID = CID-200e6206-98b5-44b2-9e48-262871884eeb 2 问题描述