Github user paul-rogers commented on a diff in the pull request: https://github.com/apache/drill/pull/1239#discussion_r184169114 --- Diff: distribution/src/resources/yarn-drillbit.sh --- @@ -175,4 +209,11 @@ fi echo "`date` Starting drillbit on `hostname` under YARN, logging to $DRILLBIT_LOG_PATH" echo "`ulimit -a`" >> "$DRILLBIT_LOG_PATH" 2>&1 -"$DRILL_HOME/bin/runbit" exec +# Run in background +"$DRILL_HOME/bin/runbit" exec & --- End diff -- Under YARN, it is YARN that maintains the pid, not Drill. YARN expects its child processes to run in the foreground and will handle capturing the pid. This is a case in which "native" Apache YARN works differently than "MapR YARN." Since Apache YARN handles cgroups, it is the one that needs the pid. Under MapR's limited YARN, then Drill is second-guessing YARN and needs the pid. It may be that MapR's YARN can handle a background process; I don't recall the details. Is there way way to run Drill in the background, get the pid, then return to the foreground so that the script does not exit until Drill itself exits? In fact, if I remember correctly, the scripts have two layers; in one layer, the script replaces itself with the Drill process. Something to check.
---