在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) 

有什么问题? 我该如何解决这个问题? 谢谢!

我在Windows服务器上安装1.0.3时遇到了这个问题。 我改变了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文档在这里

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

这个问题在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

似乎有一个与路径相关的权限问题
/tmp/hadoop-Administrator/mapred/local/taskTracker
如错误消息所证明的那样

 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指定的文件夹。 其他方面可能需要更多的控制权,例如作为所有者。 我不记得hadoop安装程序中组件所需的具体权限。

我还没有处理Hadoop的许可设置方面,特别是在Windows(尤其是在Windows),所以我说的是严重依赖于你提供的错误信息。 我也没有与cygwin文件夹许可保密,所以我不知道解决方案来纠正它,但希望这会让你指出正确的方向。