当我尝试运行我的作业时,出现以下异常:
Exception in thread "main" java.io.IOException: Mkdirs failed to create /some/path
at org.apache.hadoop.util.RunJar.ensureDirectory(RunJar.java:106)
at org.apache.hadoop.util.RunJar.main(RunJar.java:150)
其中 /some/path 是 hadoop.tmp.dir。但是,当我在 /some/path 上发出 dfs -ls cmd 时,我可以看到它存在并且数据集文件存在(在工作午餐之前复制)。此外,该路径在 hadoop 配置中已正确定义。任何建议将不胜感激。我使用的是hadoop 0.21。
刚刚在我的 MacBook Air 中以独立模式从 CDH4 运行 mahout 时遇到了这个问题。
问题在于,解压 mahout 作业时,会在不区分大小写的文件系统上创建 /tmp/hadoop-xxx/xxx/LICENSE 文件和 /tmp/hadoop-xxx/xxx/license 目录。
我可以通过从 jar 文件中删除 META-INF/LICENSE 来解决这个问题,如下所示:
zip -d mahout-examples-0.6-cdh4.0.0-job.jar META-INF/LICENSE
然后验证它
jar tvf mahout-examples-0.6-cdh4.0.0-job.jar | grep -i license
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)