我正在使用Hadoop 3.2.0,并试图在docker容器中运行一个简单的应用程序,并且我在 yarn-site.xml 中进行了所需的配置更改和 container-executor.cfg 选择LinuxContainerExecutor和docker runtime。
我在hortonworks博客之一中使用了分布式外壳的示例。 https://hortonworks.com/blog/trying-containerized-applications-apache-hadoop-yarn-3-1/
我在这里面临的问题是,当应用程序提交到YARN时,它失败了,原因与目录创建问题有关,并显示以下错误
2019-02-14 20:51:16,450 INFO分布式shell。客户端:已获得应用程序 来自ASM的报告,其中appId = 2,clientToAMToken = null, appDiagnostics =应用程序application_1550156488785_0002失败2 APP容器的AM容器应支付的时间atattatt_1550156488785_0002_000002 使用exitCode:-1000退出尝试失败。 [2019-02-14 20:51:16.282]应用程序申请_1550156488785_0002 初始化失败(exitCode = 20),输出为:main:命令 提供了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 <中看到相同的内容/ p>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/data/yarn/local</value>
<final>false</final>
<source>yarn-site.xml</source>
</property>
我不明白为什么要在nmPrivate目录中创建usercache目录。
注意:我已经验证了myuser对目录的权限,并且还尝试按照相关文章中的建议手动清除目录。但是没有结果。在其他任何日志中都没有看到有关容器启动失败的任何其他信息。
我该如何调试为什么usercache dir无法正确解析?
真的很感谢您的帮助。
答案 0 :(得分:0)
意识到这全是因为启动服务的用户以及服务所在目录的权限。
确保完成所需的更改后,我可以无缝运行示例和其他应用程序。
感谢Hadoop用户社区的指导。在此处添加链接以获取更多详细信息。
http://mail-archives.apache.org/mod_mbox/hadoop-user/201902.mbox/browser