我正尝试在我的机器上将 Hadoop 作为单节点集群运行。我完成了安装步骤,所以 Hadoop 已经在我的系统上了。
但是,当我运行 start-all.sh
并随后检查 jps
是否正在运行 NameNode
时,这就是我得到的结果:
20053 Jps
19944 NodeManager
我已经尝试先运行 start-dfs.sh
,然后运行 start-yarn.sh
,但这没有用。
我还尝试用
格式化NameNode
hadoop namenode -format
但我做不到,我得到了错误:
15/07/15 16:34:19 WARN namenode.NameNode: Encountered exception during format:
java.io.IOException: Cannot remove current directory: /usr/local/hadoop_store/hdfs/namenode/current
at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.clearDirectory(Storage.java:335)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.format(NNStorage.java:548)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.format(NNStorage.java:569)
at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:161)
at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:991)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1429)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1554)
15/07/15 16:34:19 ERROR namenode.NameNode: Failed to start namenode.
java.io.IOException: Cannot remove current directory: /usr/local/hadoop_store/hdfs/namenode/current
at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.clearDirectory(Storage.java:335)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.format(NNStorage.java:548)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.format(NNStorage.java:569)
at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:161)
at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:991)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1429)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1554)
15/07/15 16:34:19 INFO util.ExitUtil: Exiting with status 1
15/07/15 16:34:19 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at user/127.0.1.1
************************************************************/
我也尝试过:
sudo hadoop namenode -format
但这也不起作用,我仍然遇到一些错误。
有人可以帮我解决这个问题吗?几天来我一直在为这个问题而苦苦挣扎。
谢谢!
最佳答案
您有权限问题。
用于运行名称节点格式的用户需要与运行名称节点进程的用户相同。您可以通过使用 Unix 文件系统权限来解决这个问题,但您不应该。
对于您的情况,您可以以 root 身份运行启动脚本,这不是一个好主意,但如果我们只讨论本地集群,则可能是可以接受的。
更好的做法是删除 /usr/local/hadoop_store/hdfs/namenode/current
并以正确的用户身份重新运行格式。通常,这将类似于:
sudo su hdfs -c "hadoop namenode -format"
关于java - NameNode没有启动start-all.sh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31433454/