伪分布式下DataNode无法启动问题

DataNode无法启动:

问题原因:

执行文件系统格式化时,会在namenode数据文件夹(即配置文件中dfs.name.dir在本地系统的路径)中保存一个current/VERSION文件,记录namespaceID,标识了所格式化的namenode的版本。如果我们频繁的格式化namenode,那么datanode中保存(即配置文件中dfs.data.dir在本地系统的路径)的current/VERSION文件只是你第一次格式化时保存的namenode的ID,因此就会造成datanode与namenode之间的id不一致。

解决方法:

把配置文件中dfs.data.dir在本地系统的路径下的current/VERSION文件中的namespaceID改为与dfs.name.dir在本地系统的路径下的current/VERSION文件中的namespaceID一样。

问题解决。

================================================================

重新安装了Hadoop,无法启动DataNode,在浏览器中输入http://localhost:50070,点击页面中的Namenode logs链接,在logs页面点击hadoop-hadoop-datanode-ubuntu.log 链接,查看日志:可以看到:

2015-12-15 15:10:50,733 WARN org.apache.hadoop.metrics2.impl.MetricsSystemImpl: 
Source name ugi already exists! 2015-12-15 15:10:50,837 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: Incorrect permission for /usr/local/hadoop/hdfs/data, expected: rwxr-xr-x, while actual: rwxrwxr-x

解决办法:修改hdfs下name和data文件夹的权限:

hadoop@tinylcy:/usr/local/hadoop/hdfs$ sudo chmod g-w data/
hadoop@tinylcy:/usr/local/hadoop/hdfs$ sudo chmod g-w name/

重启即可。

原文地址:https://www.cnblogs.com/Murcielago/p/4306296.html