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

Hadoop 由于权限失败,无法在cygwin上启动tasktracker,hadoop,cygwin,Hadoop,Cygwin,我已经在Windows7下的cygwin上安装了hadoop 1.1.1。dfs组件启动正常(start-dfs.sh或start-all.sh都正常),jobtracker(start-mapred.sh)也正常,但tasktracker无法启动并关闭,错误与tasktracker路径上的权限有关(未能设置0755)。我在上看到过类似的问题,但没有找到任何解决方案或如何解决的指导。也尝试了许多网站的解决方案,但都是徒劳的 这是日志输出 2013-01-02 15:51:31,836

我已经在Windows7下的cygwin上安装了hadoop 1.1.1。dfs组件启动正常(start-dfs.sh或start-all.sh都正常),jobtracker(start-mapred.sh)也正常,但tasktracker无法启动并关闭,错误与tasktracker路径上的权限有关(未能设置0755)。我在上看到过类似的问题,但没有找到任何解决方案或如何解决的指导。也尝试了许多网站的解决方案,但都是徒劳的

这是日志输出

     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: 
2013-01-02 15:51:31836 INFO org.apache.hadoop.mapred.TaskTracker:启动TaskTracker,所有者为120173
2013-01-02 15:51:31836 INFO org.apache.hadoop.mapred.TaskTracker:良好的映射本地目录是:/tmp/hadoop-120173/mapred/local
2013-01-02 15:51:31852错误org.apache.hadoop.mapred.TaskTracker:无法启动任务跟踪器,因为java.io.IOException:未能将路径:\tmp\hadoop-120173\mapred\local\TaskTracker的权限设置为0755
位于org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:689)
位于org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:670)
位于org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:509)
位于org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:344)
位于org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:189)
位于org.apache.hadoop.mapred.TaskTracker.initialize(TaskTracker.java:810)
位于org.apache.hadoop.mapred.TaskTracker.(TaskTracker.java:1557)
位于org.apache.hadoop.mapred.TaskTracker.main(TaskTracker.java:3893)
2013-01-02 15:51:31852 INFO org.apache.hadoop.mapred.TaskTracker:SHUTDOWN\u MSG:

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

尝试更改
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>

dfs.name.dir
c:/cygwin/usr/somedir/dfs/name
dfs.data.dir
c:/cygwin/usr/somedir/dfs/data

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


Amar谢谢。taskTracker失败的文件夹仅位于cygwin下。。它是D:/cygwin/tmp/hadoop-120173/mapred/local/taskTracker。。但此错误似乎与dfs名称和数据文件夹无关。我将尝试将这些实体显式地放在hdfs站点中并尝试。。将在此处发布。@Dinkar Gupta此解决方案对您有效吗?我也遇到了同样的问题。卡尔,你有没有找到解决这个问题的办法,我也面临着同样的问题?