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