不管出什么问题,首先查看日志。

在启动过hadoop的前提下,打开浏览器,输入http://localhost:50070

点击Utilities下的logs,选择hadoop-root-datanode-master.log查看日志。

一、启动失败

日志提示:WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Block pool ID needed, but service not yet registered with NN

问题描述:以前启动成功过,后面又通过hadoop namenode -format格式化启动,通过jps查看,短暂的开启,又自动关闭。

原因:datanode的clusterID 和 namenode的clusterID 不匹配。在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时namenode的clusterID会重新生成,而datanode的clusterID 保持不变。

解决方案1:清空所有DataNode的data目录,但注意不要将data目录本身给删除了。data目录由core-site.xml文件中的属性“dfs.datanode.data.dir”指定。

    2:根据日志中的路径,dfs目录由core-site.xml文件中的属性“dfs.datanode.data.dir”指定的上一级目录,能看到dfs目录下有data和name两个文件夹,

      将name/current下的VERSION中的clusterID复制到data/current下的VERSION中,覆盖掉原来的clusterID