我得到了:
Application application_1427711869990_0001 failed 2 times due to AM Container for appattempt_1427711869990_0001_000002 exited with exitCode: -1000 due to: Not able to initialize user directories in any of the configured local directories for user kailash
.Failing this attempt.. Failing the application.
我无法找到与此退出代码相关的任何内容以及相关原因。我使用的是Hadoop 2.5.0(Cloudera 5.3.2)。
答案 0 :(得分:8)
实际上这是由于某些yarn本地目录上的权限问题。我开始使用LinuxContainerExecutor
(在非安全模式下使用nonsecure-mode.local-user作为kailash)并进行相应的更改。但是由于某些(未知)原因,NodeManager无法清除用户的本地目录,并且仍然存在以前用户的目录(在我的情况下是纱线)。
所以为了解决这个问题,我首先必须找到属性yarn.nodemanager.local-dirs
的值(使用Cloudera使用搜索选项为YARN服务查找此属性,否则查看hadoop conf目录中的yarn-site.xml) ,然后在usercache下为所有节点管理器节点降低文件/目录。就我而言,我用过:
rm -rf /yarn/nm/usercache/*
答案 1 :(得分:2)
以防万一有人丢失了usercache位置。如果您未在任何地方配置yarn.nodemanager.local-dirs
,请在默认位置${hadoop.tmp.dir}/nm-local-dir
中查找。
同样,如果hadoop.tmp.dir
中未配置core-site.xml
,它将位于/tmp/hadoop-${user.name}
下。 user.name是您用于运行当前Hadoop进程的UNIX用户。
默认情况下,所有配置文件都在$HADOOP_INSTALL/etc/hadoop/
下。
答案 2 :(得分:0)
您需要应用此命令
rm -rf / dn / yarn / nm / usercache / * {这是我的配置}
请检查YARN(包含MR2)NodeManager本地目录中的配置。
http://i.imgur.com/BHwhUnB.jpg
您需要将此应用于YARN报告错误的数据节点
这是我案例的样本
http://i.imgur.com/miNx454.jpg
ApplicationMaster报告C90BFH04.localdomain:8042,这是数据节点no 4。所以我只应用于Node no 4中的YARN目录
之后一切都很好!
答案 3 :(得分:0)
当我使用集群模式对“ spark-submit-on-yarn”和actor进行测试时:
spark-submit --master yarn --deploy-mode cluster --class org.apache.spark.examples.SparkPi /usr/local/install/spark-2.2.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.2.0.jar 100
由于我是同样的错误:
Application application_1532249549503_0007 failed 2 times due to AM Container for appattempt_1532249549503_0007_000002 exited with exitCode: -1000
Failing this attempt.Diagnostics: java.io.IOException: Resource file:/usr/local/install/spark-2.2.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.2.0.jar changed on src filesystem (expected 1531576498000, was 1531576511000
最后,我通过在$ HADOOP_HOME / etc / hadoop / core-site.xml中设置属性fs.defaultFS
修复了该错误