问题在windows下的hadoop中启动tasktracker
我想在windows下使用hadoop,当我想启动tasktracker时遇到问题。例如:问题在windows下的hadoop中启动tasktracker
$bin/start-all.sh
那么日志中写道:
2011-06-08 16:32:18,157 ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.io.IOException: Failed to set permissions of path: /tmp/hadoop-Administrator/mapred/local/taskTracker to 0755
at org.apache.hadoop.fs.RawLocalFileSystem.checkReturnValue(RawLocalFileSystem.java:525)
at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:507)
at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:318)
at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:183)
at org.apache.hadoop.mapred.TaskTracker.initialize(TaskTracker.java:630)
at org.apache.hadoop.mapred.TaskTracker.<init>(TaskTracker.java:1328)
at org.apache.hadoop.mapred.TaskTracker.main(TaskTracker.java:3430)
什么问题?我该如何解决这个问题?谢谢!
有该错误消息
ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.io.IOException: Failed to set permissions of path: /tmp/hadoop-Administrator/mapred/local/taskTracker
证明向TaskTracker正处于启动需要和chmod指定的文件夹的能力帐户似乎是相关的路径/tmp/hadoop-Administrator/mapred/local/taskTracker
权限问题。对于其他方面,可能需要更多的控制权,例如拥有者。我不记得hadoop安装中组件所需的具体权限。
我还没有处理Hadoop的权限设置方面,特别是在windows(所有),所以我说的是很大程度上基于您提供的错误消息。我也没有与cygwin文件夹权限保密,所以我不知道解决方案来纠正它,但希望这会让你指出正确的方向。
使用hadoop-Admininstrator文件夹的此更改所有者。你可以使用chown命令。
在Apache Hadoop用户邮件列表中引发了此问题。这在Hadoop的某些发行版本中似乎是个问题,而不是其他版本。
一个简单的解决方案是下载不同版本的Hadoop(假设您由于某些其他原因不需要特定的Hadoop版本)。
我遇到了与1.0.0版(测试版)相同的确切问题。
我又试图0.23.0,但有一个致命的ClassNotFoundException:
log4j:ERROR Could not find value for key log4j.appender.NullAppender
log4j:ERROR Could not instantiate appender named "NullAppender".
Exception in thread "main" java.lang.ClassNotFoundException: hadoop-mapreduce-examples-0.23.0.jar
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.apache.hadoop.util.RunJar.main(RunJar.java:182)
最后我想版本0.22.0,没有错误的工作。因此,我建议你尝试下载并安装0.22.0版本:http://hadoop.apache.org/common/releases.html#10+December%2C+2011%3A+release+0.22.0+available
我跑这个问题上的1.0.3的Windows服务器上的安装。我改变了默认目录HDFS-site.xml中,使得Hadoop的创建为DFS的目录是这样的cygwin目录的子目录...
...
<property>
<name>dfs.name.dir</name>
<value>c:/cygwin/usr/mydir/dfs/logs</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>c:/cygwin/usr/mydir/dfs/data</value>
</property>
</configuration>
这似乎解决问题。
的配置文件Apache文档是here
这是走出来的纯Java代码,所以搭配chmod是不是与此有关。 cygwin也不是 – 2012-11-22 12:22:20