由于权限失败,无法在cygwin上启动tasktracker

时间:2013-01-02 12:03:56

标签: hadoop cygwin

我在windows 7下的cygwin上设置了hadoop 1.1.1 .dfs组件正常启动(start-dfs.sh或start-all.sh)所以是jobtracker(启动mapred.sh)但是tasktracker失败了启动和关闭与taskTracker路径权限相关的错误(无法设置0755)。我在Problem starting tasktracker in hadoop under windows看到了一个类似的问题,但没有找到解决方法或指导如何解决。已经尝试了许多网站的解决方案,但都是徒劳的。

这是日志输出

     2013-01-02 15:51:31,836 INFO org.apache.hadoop.mapred.TaskTracker: Starting tasktracker with owner as 120173
     2013-01-02 15:51:31,836 INFO org.apache.hadoop.mapred.TaskTracker: Good mapred local directories are: /tmp/hadoop-120173/mapred/local
     2013-01-02 15:51:31,852 ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.io.IOException: Failed to set permissions of path: \tmp\hadoop-120173\mapred\local\taskTracker to 0755
at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:689)
at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:670)
at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:509)
at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:344)
at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:189)
at org.apache.hadoop.mapred.TaskTracker.initialize(TaskTracker.java:810)
at org.apache.hadoop.mapred.TaskTracker.<init>(TaskTracker.java:1557)
at org.apache.hadoop.mapred.TaskTracker.main(TaskTracker.java:3893)

    2013-01-02 15:51:31,852 INFO org.apache.hadoop.mapred.TaskTracker: SHUTDOWN_MSG: 

我甚至尝试手动设置此目录的权限,然后运行tasktracker但它仍然失败。

2 个答案:

答案 0 :(得分:0)

这是由于hadoop-7682错误,您必须应用jar补丁才能解决此问题。 你可以在这里找到补丁和说明

https://github.com/congainc/patch-hadoop_7682-1.0.x-win

答案 1 :(得分:-1)

尝试更改hdfs-site.xml中的默认目录,以便hadoop为dfs创建的目录是cygwin目录的子目录。像这样更改hdfs-site.xml

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