spark on k8s 基础镜像的构建
背景
这是跑spark on k8s任务的基础镜像,用来指明executor pod的基础镜像
构建步骤
-
git clone spark特定的版本(假如是3.0.1版本),克隆完后,执行一下命令进行构建,构建出包含kubernetes模块的可运行包:
## spark 3.x兼容hadoop cdh版本,处理冲突 git cherry-pick 8e8afb3a3468aa743d13e23e10e77e94b772b2ed ./dev/make-distribution.sh --name 2.6.0-cdh5.13.1 --pip --tgz -Phive -Phive-thriftserver -Pmesos -Pyarn -Pkubernetes -Dhadoop.version=2.6.0-cdh5.13.1 -DskipTests -
安装并加入必要的jar包
按照lzoCodec,安装native-lzo library(用来支持lzo),
把包含libhadoop.so的目录下的文件复制到assembly/target/scala-2.12/jars/hadoop_native
把包含libgplcompression.so的目录下的文件复制到assembly/target/scala-2.12/jars/native
把hadoop-lzo-0.4.15-cdh5.13.1.jar复制到assembly/target/scala-2.12/jars
配置环境变量ENV SPARK_DIST_CLASSPATH=$SPARK_HOME/jars/native:$SPARK_HOME/jars/hadoop_native ENV LD_LIBRARY_PATH=$SPARK_HOME/jars/native:$SPARK_HOME/jars/hadoop_native ENV JAVA_LIBRARY_PATH=$SPARK_HOME/jars/native:$SPARK_HOME/jars/hadoop_native -
修改镜像代码为
# distribution, the docker build command should be invoked from the top level directory # of the Spark distribution. E.g.: # docker build -t spark:latest -f kubernetes/dockerfiles/spark/Dockerfile . RUN

本文档详细介绍了如何构建用于Spark on Kubernetes的基础镜像和任务镜像。首先,通过git clone获取特定版本的Spark源码,然后进行定制化构建,包括处理Hadoop版本冲突、安装必要的库和配置环境变量。接着,提供了Dockerfile的修改内容,用于创建包含Kubernetes支持的Spark镜像。最后,展示了任务镜像的构建过程,强调了在Dockerfile中配置HADOOP_CONF_DIR和解决executor连接driver的问题,以及配置spark-default.conf。整个过程涵盖了从源码编译到Docker镜像的创建,为运行Spark on Kubernetes任务提供了完整的解决方案。
最低0.47元/天 解锁文章
604

被折叠的 条评论
为什么被折叠?



