2012-07-03 73 views
7

我運行namenode -format.This是我的輸出。我試着改變文件權限chmod 777 hadoop。hadoop java.io.IOException:運行namenode -format

我相信這條線是錯誤 錯誤namenode.NameNode:產生java.io.IOException:無法創建目錄/您/路徑/到/ Hadoop的/ tmp目錄/ DIR/Hadoop的Hadoop的/ DFS /名/電流

[email protected]:/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 


[email protected]:/usr/local$ sudo hadoop/bin/hadoop namenode -format 
sudo: /etc/sudoers is mode 0777, should be 0440 
sudo: no valid sudoers sources found, quitting 
+0

你可能需要先停止所有的守護進程,然後再對namenode執行格式化。 –

回答

13

嘗試與sudo(我知道你改變了權限),但我仍然會嘗試sudo並檢查是否可以解決問題。

+0

我通過更改sudoers的權限級別來解決上述錯誤。原始錯誤尚未解決。好吧,我現在有一個$ JAVA_HOME的問題,我可以使用export $ JAVA_HOME和修復錯誤的路徑 – alex

+0

@alex:你在conf/hadoop-env.sh中設置了$ JAVA_HOME嗎?檢查你的環境是否有這個JAVA_HOME集。請注意,sudo用戶環境和你的環境是不同的。使用命令printev和sudo printenv。 – FourOfAKind

+0

感謝修復了這個問題我也嘗試過設置各種環境變量,所以我發現它值得學習經驗。讓我困惑的是教程說你可以設置hadoop-env.sh或bash.bashrc文件。 – alex

0

sudo在這種情況下中斷,但pkexec(PolicyKit的命令行前端)仍然有效,因此您可以使用單個命令修復它。不需要重新啓動。

pkexec chmod 0440 /etc/sudoers 

這個假設安裝了PolicyKit。如果這是一個桌面系統(而不是沒有GUI的服務器),那就是。

1

檢查HDFS-site.xml的配置,可能有性能 dfs.namenode.name.dir和dfs.datanode.data.dir 對我來說,這是問題的原因錯誤的路徑(目錄爲位於其他當前用戶的主文件夾中)。

+0

我認爲每個人都會用sudo - 錯誤消息說:java.io.IOException:無法創建目錄/ your/path/to/hadoop/tmp/dir/hadoop-hadoop/dfs/name/current - 這是否意味着永遠不會存在持有者值datadir目錄不存在?首先檢查hdfs-site.xml的core-site.xml中的默認值? –

11

以下步驟解決我的問題 -

1須藤蘇

輸入您的密碼。

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

這已經爲hadoop2.5在 「Hadoop的NameNode的-format」 已beendeprecated因此,使用 「HDFS的NameNode -format」

+0

謝謝,它的工作! –

+0

爲我工作,謝謝!接受的答案在我的情況下不起作用 – randombee

+0

同樣適用於我..接受的答案在我的情況下沒有工作..這工作〜 – MysticForce

2

這是一個權限問題進行。 要麼你可以使用 1.須藤 2.以root身份登錄

但最好的解決辦法是

須藤CHOWN $ HADOOP_HOME

的Hadoop的NameNode -format

哪裏HADOOP_HOME是您的Hadoop安裝目錄

+0

sudo chown $ HADOOP_HOME是什麼權限? –

相關問題