运行 MapReduce 作业显示错误 - Mkdirs 无法创建 /var/folders/

问题描述 投票:0回答:4

当我在 Mac 终端中运行 MapReduce 作业时:

PawandeepSingh1$ hadoop jar MaximumTemperature.jar
Exception in thread "main" java.io.IOException: Mkdirs failed to create /var/folders/v1/lyx_f0rj615cy8s54_bk053h0000gp/T/hadoop-unjar3698429834837790177/META-INF/license
    at org.apache.hadoop.util.RunJar.ensureDirectory(RunJar.java:128)
    at org.apache.hadoop.util.RunJar.unJar(RunJar.java:104)
    at org.apache.hadoop.util.RunJar.unJar(RunJar.java:81)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:209)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

我见过类似的问题,它说我没有运行该作业的权限。谁能给我一步一步的解决方案。

提前谢谢您

hadoop hdfs ioexception
4个回答
1
投票

您可能没有 hdfs 文件系统的权限来为您的作业创建目录。您是提交到集群还是运行本地测试环境。您可以 su 到对 hdfs 上的 /var 文件夹具有权限的用户吗?如果您不是集群的管理员,您需要让管理员将您添加到对 hdfs 有权限的组(hdfs、hadoop)中,或者授予您使用 sudo 或 sudo 或苏的能力。


0
投票

您正在使用用户名“PawandeepSingh1”运行 jar。这些用户通常没有 /var 文件夹的写入权限。尝试像这样运行命令

sudo hadoop jar MaximumTemperature.jar


0
投票

在您引用的问题中,查看获得最多支持的(不是选定的)解决方案。


0
投票

这是特定于 MAC 操作系统和 IntelliJ 的错误。 IntelliJ 创建一个名为 META-INF/license 的文件,而 hadoop jar 命令并不能很好地使用它。 MAC 操作系统默认设置为不区分大小写,这会导致 META-INF/许可证文件出现一些问题。解决这个问题的方法是简单地使用以下命令从 jar 中删除该文件:

zip -d MaximumTemperature.jar META-INF/LICENSE

© www.soinside.com 2019 - 2024. All rights reserved.