hadoop java.io.IOException:在运行namenode -format时

时间:2012-07-03 16:24:43

标签: hadoop directory ioexception java-io

我跑了namenode -format。这是我的输出。我尝试更改文件权限chmod 777 hadoop。

我相信这一行是错误的  错误namenode.NameNode:java.io.IOException:无法创建目录/ your / path / to / hadoop / tmp / dir / hadoop-hadoop / dfs / name / current

adoop@alexander-desktop:/usr/local/hadoop/bin$ ./hadoop namenode -format
12/07/03 17:03:56 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = alexander-desktop/127.0.1.1
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 0.20.2
STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010
************************************************************/
12/07/03 17:03:56 INFO namenode.FSNamesystem: fsOwner=hadoop,hadoop
12/07/03 17:03:56 INFO namenode.FSNamesystem: supergroup=supergroup
12/07/03 17:03:56 INFO namenode.FSNamesystem: isPermissionEnabled=true
12/07/03 17:03:56 ERROR namenode.NameNode: java.io.IOException: Cannot create directory /your/path/to/hadoop/tmp/dir/hadoop-hadoop/dfs/name/current
    at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.clearDirectory(Storage.java:295)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:1086)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:1110)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:856)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:948)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:965)

12/07/03 17:03:56 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at alexander-desktop/127.0.1.1


hadoop@alexander-desktop:/usr/local$ sudo hadoop/bin/hadoop namenode -format
sudo: /etc/sudoers is mode 0777, should be 0440
sudo: no valid sudoers sources found, quitting

5 个答案:

答案 0 :(得分:14)

尝试使用sudo(我意识到你更改了权限)但我仍然会尝试sudo并检查是否能解决问题。

答案 1 :(得分:12)

以下步骤解决了我的问题 -

1- sudo su

输入您的密码。

2- / usr / local / hadoop / bin / hdfs namenode -format。

已经为hadoop2.5做了这个,其中“hadoop namenode -format”已经被废弃,因此使用“hdfs namenode -format”

答案 2 :(得分:2)

检查hdfs-site.xml配置,它可能有一个错误的属性路径 dfs.namenode.name.dir和dfs.datanode.data.dir 在我的情况下,这是问题的原因(目录位于其他当前用户的主文件夹中)。

答案 3 :(得分:2)

这是权限问题。 要么你可以使用 苏多 2.以root身份登录

但最好的解决方案是

sudo chown $ HADOOP_HOME

hadoop namenode -format

HADOOP_HOME是你的hadoop安装目录

答案 4 :(得分:0)

sudo在这种情况下被破坏了,但pkexec(PolicyKit的命令行前端)仍然有效,所以你可以用一个命令修复它。不需要重新启动。

pkexec chmod 0440 /etc/sudoers

这假定已安装PolicyKit。如果这是一个桌面系统(而不是没有GUI的服务器),那就是。