运行 Docker 中的 Spark 历史服务器,用于查看 AWS Glue 作业
Running Spark history server in Docker to view AWS Glue jobs
我已经设置 AWS Glue 来输出 Spark 事件日志,以便可以将它们导入 Spark History Server。 AWS为此提供了CloudFormation stack,我只想运行本地历史服务器并导入事件日志。我想为此使用 Docker,以便同事可以轻松 运行 同样的事情。
我 运行 遇到了问题,因为历史服务器是一个守护进程,所以容器启动并立即关闭。
如何让 Docker 图片保持活动状态?
我的Docker文件如下
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
您需要 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。
我已经设置 AWS Glue 来输出 Spark 事件日志,以便可以将它们导入 Spark History Server。 AWS为此提供了CloudFormation stack,我只想运行本地历史服务器并导入事件日志。我想为此使用 Docker,以便同事可以轻松 运行 同样的事情。
我 运行 遇到了问题,因为历史服务器是一个守护进程,所以容器启动并立即关闭。
如何让 Docker 图片保持活动状态?
我的Docker文件如下
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
您需要 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。