目前有三台主机,配置如下:在hadoop102主机上执行启动脚本(自定义脚本或者start-dfs.sh或者start-all.sh),datanode节点不能正常启动。

第一种情况:

原因:多次 hadoop namenode -format  导致 datanode 的version 里的Cluster-Id 不一致

解决方案:删除hadoop配置文件core-site.xml中指定的缓存数据路径中的数据,然后进行格式化操作。

打开core-site.xml文件,找到缓存路径,

  然后使用命令删除这个文件夹

rm -rf /opt/module/hadoop-3.1.3/data

 这里要删除另外两个主机 同样位置的文件,也就是在另外两个主机在执行一遍这个命令

  然后重新格式化datanode,使用命令:

hadoop namenode -format

最后重新启动hadoop即可

第二种情况:

尝试上述方法依然没有启动其他机器上的datanode节点,

#首先你可以在没有启动datanode上的主机上尝试,单独启动一下datanode,命令如下:
sbin/hadoop-daemon.sh start datenode

#如果启动成功,则是缺少slaves配置问题
    使用命令关闭datanode
    sbin/hadoop-daemon.sh stop datenode
    然后修改slaves配置文件,具体在下文
#如果失败,请查看hdfs、core等配置文件是否正确

   可以查看一下{hadoop文件路径}/etc/hadoop/slaves这个文件,这个文件是集群里所有DataNode的主机名,如果缺少某一个主机名,不能全部启动,将全部要启动datanode的主机名加入即可。

hadoop102
hadoop103
hadoop104

重新执行启动脚本即可。 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐