Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Won't Fix
-
None
-
None
Description
If I execute simple command like date on docker container, the application failed to complete successfully.
for example,
$ yarn jar $HADOOP_HOME/share/hadoop/yarn/hadoop-yarn-applications-distributedshell-2.7.1.jar -shell_env YARN_CONTAINER_RUNTIME_TYPE=docker -shell_env YARN_CONTAINER_RUNTIME_DOCKER_IMAGE=hadoop-docker -shell_command "date" -jar $HADOOP_HOME/share/hadoop/yarn/hadoop-yarn-applications-distributedshell-2.7.1.jar -num_containers 1 -timeout 3600000
…
17/04/12 00:16:40 INFO distributedshell.Client: Application did finished unsuccessfully. YarnState=FINISHED, DSFinalStatus=FAILED. Breaking monitoring loop
17/04/12 00:16:40 ERROR distributedshell.Client: Application failed to complete successfully
The error log is like below.
... Failed to write pid to file /cgroup_parent/cpu/hadoop-yarn/container_xxxx/tasks - No such process ...
When writing pid to cgroup tasks, container-executor doesn’t check docker container’s status.
If the container finished very quickly, we can’t write pid to cgroup tasks, and it is not problem.
So container-executor needs to check docker container’s exit code during writing pid to cgroup tasks.