2011-06-08 28 views
7

我想在windows下使用hadoop,當我想啓動tasktracker時遇到問題。例如:問題在windows下的hadoop中啓動tasktracker

$bin/start-all.sh 

那麼日誌中寫道:

2011-06-08 16:32:18,157 ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.io.IOException: Failed to set permissions of path: /tmp/hadoop-Administrator/mapred/local/taskTracker to 0755 
    at org.apache.hadoop.fs.RawLocalFileSystem.checkReturnValue(RawLocalFileSystem.java:525) 
    at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:507) 
    at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:318) 
    at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:183) 
    at org.apache.hadoop.mapred.TaskTracker.initialize(TaskTracker.java:630) 
    at org.apache.hadoop.mapred.TaskTracker.<init>(TaskTracker.java:1328) 
    at org.apache.hadoop.mapred.TaskTracker.main(TaskTracker.java:3430) 

什麼問題?我該如何解決這個問題?謝謝!

回答

-1

有該錯誤消息

ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.io.IOException: Failed to set permissions of path: /tmp/hadoop-Administrator/mapred/local/taskTracker 

證明向TaskTracker正處於啓動需要和chmod指定的文件夾的能力帳戶似乎是相關的路徑
/tmp/hadoop-Administrator/mapred/local/taskTracker
權限問題。對於其他方面,可能需要更多的控制權,例如擁有者。我不記得hadoop安裝中組件所需的具體權限。

我還沒有處理Hadoop的權限設置方面,特別是在windows(所有),所以我說的是很大程度上基於您提供的錯誤消息。我也沒有與cygwin文件夾權限保密,所以我不知道解決方案來糾正它,但希望這會讓你指出正確的方向。

+1

這是走出來的純Java代碼,所以搭配chmod是不是與此有關。 cygwin也不是 – 2012-11-22 12:22:20

0

使用hadoop-Admininstrator文件夾的此更改所有者。你可以使用chown命令。

0

在Apache Hadoop用戶郵件列表中引發了此問題。這在Hadoop的某些發行版本中似乎是個問題,而不是其他版本。

一個簡單的解決方案是下載不同版本的Hadoop(假設您由於某些其他原因不需要特定的Hadoop版本)。

我遇到了與1.0.0版(測試版)相同的確切問題。

我又試圖0.23.0,但有一個致命的ClassNotFoundException:

log4j:ERROR Could not find value for key log4j.appender.NullAppender 
log4j:ERROR Could not instantiate appender named "NullAppender". 
Exception in thread "main" java.lang.ClassNotFoundException: hadoop-mapreduce-examples-0.23.0.jar 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:264) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:182) 

最後我想版本0.22.0,沒有錯誤的工作。因此,我建議你嘗試下載並安裝0.22.0版本:http://hadoop.apache.org/common/releases.html#10+December%2C+2011%3A+release+0.22.0+available

5

我跑這個問題上的1.0.3的Windows服務器上的安裝。我改變了默認目錄HDFS-site.xml中,使得Hadoop的創建爲DFS的目錄是這樣的cygwin目錄的子目錄...

...

<property> 
    <name>dfs.name.dir</name> 
    <value>c:/cygwin/usr/mydir/dfs/logs</value> 
</property> 
<property> 
    <name>dfs.data.dir</name> 
    <value>c:/cygwin/usr/mydir/dfs/data</value> 
</property> 
</configuration> 

這似乎解決問題。

的配置文件Apache文檔是here

相關問題