我试图在我的机器上运行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
但这也不起作用,我仍然会遇到一些错误。
有人可以帮帮我吗?我好几天都在努力解决这个问题。
谢谢!
答案 0 :(得分:0)
您有权限问题。
用于运行名称节点格式的用户需要与运行namenode进程的用户相同。您可以通过使用Unix文件系统权限来解决这个问题,但不应该。
对于您的情况,您可以以root身份运行启动脚本,这不是一个好主意,但如果我们只是在讨论本地群集,则可能是可以接受的。
更好的做法是删除/usr/local/hadoop_store/hdfs/namenode/current
并将格式重新运行为正确的用户。通常,这将是:
sudo su hdfs -c "hadoop namenode -format"