spark on k8s 镜像构建

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

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 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值