hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Yang (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (HADOOP-16312) Remove dumb-init from hadoop-runner image
Date Fri, 17 May 2019 22:22:00 GMT

    [ https://issues.apache.org/jira/browse/HADOOP-16312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16842649#comment-16842649
] 

Eric Yang edited comment on HADOOP-16312 at 5/17/19 10:21 PM:
--------------------------------------------------------------

{quote}Do you suggest to keep dumb-init and use exec?{quote}

Dumb-init only works one way to push container into background execution, and the current
output looks like this on my system:

{code}
hadoop       1  0.0  0.0    188     4 ?        Ss   22:11   0:00 /usr/local/bin/dumb-init
-- /opt/starter.sh /opt/hadoop/bin/ozone datanode PATH=/usr/local/sbin:/usr/
hadoop       6  0.0  0.0  11680  1500 ?        Ss   22:11   0:00 bash /opt/starter.sh /opt/hadoop/bin/ozone
datanode PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/us
hadoop      13  8.0  3.6 4685828 369912 ?      Sl   22:11   0:11  \_ /usr/lib/jvm/jre//bin/java
-Dproc_datanode -Djava.net.preferIPv4Stack=true -Dlog4j.configurationF
{code}

Bash between dumb-init and java will absorb all signal communications betweeen dumb-init and
java.  It is not working as intended.  In addition, to improve debug experience in YARN, Kitematic
and K8s, it is better to start the execution in foreground.  This allows log aggregators to
collect script output.  If user really want to demonize the container, use docker -d option
explicitly.

This means don't use dumb-init when bash -c set -e will cover what we try to accomplish with
dumb-init.


was (Author: eyang):
{quote}Do you suggest to keep dumb-init and use exec?{quote}

Dumb-init only works one way to push container into background execution.  To improve debug
experience in YARN, Kitematic and K8s, it is better to start the execution in foreground.
 This allows log aggregators to collect script output.  If user really want to demonize the
container, use docker -d option explicitly.

> Remove dumb-init from hadoop-runner image
> -----------------------------------------
>
>                 Key: HADOOP-16312
>                 URL: https://issues.apache.org/jira/browse/HADOOP-16312
>             Project: Hadoop Common
>          Issue Type: Improvement
>            Reporter: Elek, Marton
>            Priority: Major
>
> This issue is reported by [~eyang] in HDDS-1495.
> I think it's better to discuss under a separated issue as it's unrelated to HDDS-1495.
> The original problem description from [~eyang]
> {quote}Dumb-init  is one way to always run contaized program in the background and respawn
the program when program fails. This is poor man’s solution for keeping program alive.
> Cluster management software like Kubernetes or YARN have additional policy and logic
to start the same docker container on a different node. Therefore, Dumb-init is not recommended
for future Hadoop daemons instead allow cluster management software to make decision where
to start the container. Dumb-init for demonize docker container will be removed, and change
to use entrypoint.sh Docker provides -d flag to demonize foreground process. Most of the management
system built on top of Docker, (ie. Kitematic, Apache YARN, and Kubernetes) integrates with
Docker container at foreground to  aggregate stdout and stderr output of the containerized
program.
> {quote}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org


Mime
View raw message