0

我正在使用 Hadoop 3.2.0 并尝试在 docker 容器中运行一个简单的应用程序,并且我在yarn-site.xmlcontainer-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 Distributedshell.Client:从 ASM 获取应用程序报告,appId=2,clientToAMToken=null,appDiagnostics=Application application_1550156488785_0002 失败 2 次,因为 appattempt_1550156488785_0002_000002 的 AM 容器以 exitCode:-100 退出这次尝试。诊断:[2019-02-14 20:51:16.282]Application application_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中看到同样的内容

<property>
    <name>yarn.nodemanager.local-dirs</name>
    <value>/data/yarn/local</value>
    <final>false</final>
    <source>yarn-site.xml</source>
</property>

我不明白为什么它试图在 nmPrivate 目录中创建用户缓存目录。

注意:我已经验证了 myuser 对目录的权限,并且还尝试按照相关帖子中的建议手动清除目录。但没有果实。我没有在任何其他日志中看到有关容器启动失败的任何其他信息。

如何调试为什么用户缓存目录没有正确解析?

非常感谢您对此的任何帮助。

4

1 回答 1

0

意识到这完全是因为启动服务的用户以及对服务工作目录的权限。

确保完成所需的更改后,我可以无缝运行示例和其他应用程序。

感谢 Hadoop 用户社区的指导。在此处添加链接以获取更多详细信息。

http://mail-archives.apache.org/mod_mbox/hadoop-user/201902.mbox/browser

于 2019-02-26T05:23:21.817 回答