首页 > 解决方案 > Spring Cloud Dataflow 容器任务部署的错误?

问题描述

版本spring-cloud-dataflow-server-yarn-1.2.2.RELEASE
问题 :所有 OOTB / 自定义任务应用程序似乎都无法Yarn Deployer 一起使用(我专门测试过,timestamp-task-1.3.0.RELEASE并根据参考文档构建了一个 hello world 自定义任务)。

我们有一个 Yarn 集群,我们部署的所有流都运行良好,这排除了 hadoop/yarn 集群的任何问题。我们尝试部署任务的那一刻,任务以代码 0 退出,并在 Yarn Container/AppMaster 标准输出中记录以下消息

2018-09-19 18:04:20.782 DEBUG 22625 --- [ask-scheduler-2] o.s.yarn.am.allocate.AbstractAllocator   : completed container: container_1536919363436_0805_01_000002 with status=ContainerStatus: [ContainerId: container_1536919363436_0805_01_000002, State: COMPLETE, Diagnostics: Exception from container-launch.
Container id: container_1536919363436_0805_01_000002
Exit code: 1
Stack trace: ExitCodeException exitCode=1: 
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:545)
    at org.apache.hadoop.util.Shell.run(Shell.java:456)
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:722)
    at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:211)
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)


Container exited with a non-zero exit code 1
, ExitStatus: 1, ]

完整的 AppMaster 日志可以在这里找到,相应的 servers.yml 可以在这里
找到。任何帮助表示赞赏。

标签: spring-cloud-dataflow

解决方案


我正在回答我自己的问题——我们的纱线服务器启用了日志聚合,因此容器日志没有立即显示,我不得不通过聚合日志查找自定义任务未启动的原因。一旦我们(暂时)禁用了 yarn 中的日志聚合,自定义任务的 Container.stdout 和 Container.stderror 就会在 yarn-site.xml 中配置的日志目录下可见


推荐阅读