我在Eclipse luna中运行mapreduce jar文件时出错。我使用Cygwin设置了My HBASE和HADOOP。
以下是来自Eclipse控制台的错误消息:
15/03/23 16:02:01 INFO mapreduce.TableOutputFormat: Created table instance for TWEETS_TIMEWISE
15/03/23 16:02:03 INFO mapred.JobClient: Running job: job_201503231018_0009
15/03/23 16:02:04 INFO mapred.JobClient: map 0% reduce 0%
15/03/23 16:02:04 INFO mapred.JobClient: Task Id : attempt_201503231018_0009_m_000002_0, Status : FAILED
Error initializing attempt_201503231018_0009_m_000002_0:
java.io.IOException: Failed to set permissions of path: \tmp\hadoop-z010823-dev\mapred\local\taskTracker\z010823 to 0700
at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:691)
at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:664)
at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:514)
at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:349)
at org.apache.hadoop.mapred.JobLocalizer.createLocalDirs(JobLocalizer.java:144)
at org.apache.hadoop.mapred.DefaultTaskController.initializeJob(DefaultTaskController.java:191)
at org.apache.hadoop.mapred.TaskTracker$4.run(TaskTracker.java:1336)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)
at org.apache.hadoop.mapred.TaskTracker.initializeJob(TaskTracker.java:1311)
at org.apache.hadoop.mapred.TaskTracker.localizeJob(TaskTracker.java:1226)
at org.apache.hadoop.mapred.TaskTracker$5.run(TaskTracker.java:2603)
at java.lang.Thread.run(Thread.java:745)
我无法解决此权限问题。 感谢
答案 0 :(得分:0)
由于你在Windows机器上,但在Cygwin下运行,似乎存在一个混淆身份的情况(Hadoop认为它在UNIX下运行,并试图设置UNIX权限,这将是显然失败了)。我建议摆脱Cygwin,但是如果你已经把它放在心上,也许可以在Hadoop自己的论坛上询问是否有可能运行你的奇怪的野兽。 / p>
答案 1 :(得分:0)
根据Hadoop的own website,“不需要也不支持Cygwin。”我之前在Windows上运行过Hadoop - 我安装了Cygwin只是为了在我的路径上获得像cp和rm这样的Unix工具,但我之前从未从 Cygwin运行Hadoop 。尝试this guide I wrote recently,它可以帮助您在Windows上运行Hadoop。
答案 2 :(得分:0)
最后我将Cygwin转移到了RHEL。现在它运作良好。
感谢aoetalks。