【问题标题】:Cannot get tasktracker started on cygwin due to permission failure由于权限失败,无法在 cygwin 上启动 tasktracker
【发布时间】:2013-01-02 12:03:55
【问题描述】:

我已经在 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,但仍然失败。

【问题讨论】:

  • Dinkar,你有没有找到解决这个问题的方法,我也面临同样的问题?

标签: hadoop cygwin


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 阿马尔谢谢。 taskTracker 失败的文件夹仅在 cygwin 下.. 它是 D:/cygwin/tmp/hadoop-120173/mapred/local/taskTracker.. 但此错误似乎与 dfs 名称和数据文件夹无关。我将尝试将这些整体明确地放在 hdfs-site 中并尝试.. 将在此处发布。
    • @Dinkar Gupta 这个解决方案对你有用吗?我遇到了同样的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 2012-07-08
    相关资源
    最近更新 更多