最近学习hadoop集群,在配置好集群文件通过start-all.sh启动hadoop,然后jps查看进程,正常情况下会看到
[root@master sbin]# jps
5694 SecondaryNameNode
6070 Jps
5384 NameNode
5527 DataNode
5848 ResourceManager
5952 NodeManager
以上进程是正常启动,在进行其他软件配置过程可能由于未知的误操作导致namenode无法启动,在使用hadoop namenode -format
格式化namenode依然无法启动后,尝试修改hadoop–>hdfs–>name(data)文件(注:我的文件是这么存储的,name、data文件放在以上顺序的目录中),打开current,查看version中的clusterID,如果data和name中的两个ID不一样就修改相同,然后重启start-all.sh查看是否正常启动。
但是,并不是每个人到此都能解决这个问题,如果你的还没有正常启动,就删除name和data中的全部文件,然后hadoop namenode -format
格式化namenode,然后重启hadoop验证是否解决问题。
总结:解决方法
1.hadoop namenode -format格式化后重启hadoop
2.修改每个DataNode的namespaceID(位于/hdfs/data/current/VERSION文件中)<优先>或修改NameNode的namespaceID(位于/hdfs/name/current/VERSION文件中),使其一致。
3.删除DataNode的所有资料(及将集群中每个datanode的/hdfs/data/current中的VERSION删掉,然后执行hadoop namenode -format重启集群,错误消失。<推荐>)
hadoop启动后通过jps查看进程datanode或namenode不存在问题解决
最新推荐文章于 2024-10-05 16:32:40 发布