【发布时间】:2019-07-08 17:00:41
【问题描述】:
我正在使用 Hadoop 3.2.0 并尝试在 docker 容器中运行一个简单的应用程序,并且我在 yarn-site.xml 中都进行了所需的配置更改和 container-executor.cfg 选择 LinuxContainerExecutor 和 docker 运行时。
我在 hortonworks 的一篇博客中使用了分布式 shell 的示例。 https://hortonworks.com/blog/trying-containerized-applications-apache-hadoop-yarn-3-1/
我在这里遇到的问题是,当应用程序提交到 YARN 时,它失败了,原因与目录创建问题有关,并出现以下错误
2019-02-14 20:51:16,450 INFO 分布式shell.Client:得到应用程序 来自 ASM 的报告,appId=2,clientToAMToken=null, appDiagnostics=应用程序 application_1550156488785_0002 失败 2 由于应用程序尝试的 AM 容器的次数_1550156488785_0002_000002 退出并退出代码:-1000 尝试失败。诊断: [2019-02-14 20:51:16.282]申请application_1550156488785_0002 初始化失败(exitCode=20),输出: main : command 提供 0 main :用户是 myuser main :请求的纱线用户是 myuser 创建目录失败 /data/yarn/local/nmPrivate/container_1550156488785_0002_02_000001.tokens/usercache/myuser - 不是目录
我已经在 yarn-site.xml 中配置了 yarn.nodemanager.local-dirs,我可以在 YARN web ui 中看到同样的结果 localhost:8088/conf
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/data/yarn/local</value>
<final>false</final>
<source>yarn-site.xml</source>
</property>
我不明白为什么它试图在 nmPrivate 目录中创建用户缓存目录。
注意:我已经验证了 myuser 对目录的权限,并且还尝试按照相关帖子中的建议手动清除目录。但没有果实。我没有在任何其他日志中看到有关容器启动失败的任何其他信息。
如何调试为什么用户缓存目录没有正确解析??
非常感谢您对此的任何帮助。
【问题讨论】:
标签: hadoop-yarn hadoop3