在Docker中运行Spark历史记录服务器以查看AWS Glue作业

时间:2019-11-05 11:58:54

标签: apache-spark aws-glue

我已将AWS Glue设置为输出Spark事件日志,以便可以将其导入Spark History Server。 AWS为此提供了CloudFormation stack,我只想在本地运行历史记录服务器并导入事件日志。我想为此使用Docker,以便同事可以轻松运行同一件事。

由于历史记录服务器是一个守护进程,所以我遇到了问题,因此容器启动后立即关闭。

如何使Docker映像保持活动状态?

我的Dockerfile如下

ARG SPARK_IMAGE=gcr.io/spark-operator/spark:v2.4.4
FROM ${SPARK_IMAGE}

RUN apk --update add coreutils

RUN mkdir /tmp/spark-events

ENTRYPOINT ["/opt/spark/sbin/start-history-server.sh"]

我使用以下方法启动它:

docker run -v ${PWD}/events:/tmp/spark-events -p 18080:18080 sparkhistoryserver

1 个答案:

答案 0 :(得分:0)

您需要SPARK_NO_DAEMONIZE环境变量,请参见here。这样可以使容器保持活动状态。

只需按如下所示修改您的Dockerfile:

ARG SPARK_IMAGE=gcr.io/spark-operator/spark:v2.4.4
FROM ${SPARK_IMAGE}

RUN apk --update add coreutils

RUN mkdir /tmp/spark-events

ENV SPARK_NO_DAEMONIZE TRUE
ENTRYPOINT ["/opt/spark/sbin/start-history-server.sh"]

有关更详细的自述文件,请参见here