我已经在Windows 7的Cygwin环境下安装了Hadoop 1.1.1。DFS组件都可以正常启动(无论是使用start-dfs.sh还是start-all.sh),JobTracker也可以启动(使用start mapred.sh),但是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:
我甚至尝试手动设置该目录的权限,然后运行任务跟踪器,但仍然失败了。