我在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但它仍然失败。
答案 0 :(得分:0)
这是由于hadoop-7682错误,您必须应用jar补丁才能解决此问题。 你可以在这里找到补丁和说明
答案 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>