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/
重启即可。