美文网首页
k8s on spark

k8s on spark

作者: jiangsheng | 来源:发表于2020-02-17 17:37 被阅读0次

    一、安装部署

    1、spark介绍

    spark-submit可以直接用于将Spark应用程序提交到Kubernetes集群。提交机制的工作方式如下:

    Spark创建在Kubernetes容器中运行的Spark驱动程序。

    驱动程序将创建执行程序,这些执行程序也将在Kubernetes Pod中运行并连接到它们,并执行应用程序代码。

    当应用程序完成时,执行程序pod终止并被清理,但是驱动程序pod保留日志,并在Kubernetes API中保持“完成”状态,直到最终对其进行垃圾收集或手动清理为止。

    2、安装条件

        部署k8s集群

        节点可用内存大于2G

        安装JAVA环境,jdk>=8

    文档地址:

    http://spark.apache.org/docs/latest/running-on-kubernetes.html

    3、下载安装包

    [root@master ~]# wget http://archive.apache.org/dist/spark/spark-2.4.3/spark-2.4.3-bin-hadoop2.7.tgz

    [root@master ~]# tar xf spark-2.4.3-bin-hadoop2.7.tgz

    [root@master ~]# mv spark-2.4.3-bin-hadoop2.7 /usr/local/spark-2.4.3

    //添加环境变量

    [root@master spark-2.4.3]# cat /etc/profile

    export PATH=/usr/local/spark-2.4.3:$PATH

    4、创建docker镜像

    [root@master spark-2.4.3]# ./bin/docker-image-tool.sh -r wxtime -t 2.4.0 build

    [root@master ~]# docker images

    REPOSITORY                                                                      TAG                IMAGE ID            CREATED            SIZE

    wxtime/spark-r                                                                  2.4.0              592aff869ffb        4 days ago          756MB

    wxtime/spark-py                                                                  2.4.0              47e104fe2827        4 days ago          462MB

    wxtime/spark 

    [root@master ~]# docker login                                                                  2.4.0              24aab7c864da        4 days ago          371MB

    [root@master spark-2.4.3]# ./bin/docker-image-tool.sh -r wxtime -t 2.4.0 push

    [root@master spark-2.4.3]# kubectl cluster-info

    Kubernetes master is running at https://192.168.1.101:6443

    5、测试

    [root@master spark-2.4.3]# ./bin/spark-shell

    scala> sc.parallelize(1 to 1000).count()

    res1: Long = 1000

    [root@master spark-2.4.3] kubectl create serviceaccount spark

    [root@master spark-2.4.3] kubectl create clusterrolebinding spark-role --clusterrole=edit --service account=default:spark --namespace=default

    6、以集群模式启动SparkPi

    bin/spark-submit \

    --master k8s://https://10.10.0.224:6443 \

    --deploy-mode cluster \

    --name spark-pi \

    --class org.apache.spark.examples.SparkPi \

    --conf spark.executor.instances=5 \

    --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \

    --conf spark.kubernetes.container.image=wxtime/spark:2.4.3 \

    --conf spark.kubernetes.container.image.pullPolicy=Always  \

    local:///opt/spark/examples/jars/spark-examples_2.11-2.4.3.jar

    6、一些参数设置

    spark.kubernetes.namespace定义命名空间

    spark.kubernetes.container.image用于Spark应用程序的容器映像。这通常是形式example.com/repo/spark:v1.0.0。除非为每种不同的容器类型提供了明确的图像,否则此配置是必需的,并且必须由用户提供。

    spark.kubernetes.driver.container.image用于驱动程序的自定义容器映像。

    spark.kubernetes.container.image.pullPolicy

    eg: IfNotPresent

    在Kubernetes中提取映像时使用的容器映像提取策略

    spark.kubernetes.container.image.pullSecrets用逗号分隔的Kubernetes机密列表,用于从私有映像注册表中提取映像

    spark.kubernetes.allocation.batch.size

    二、遇到的问题

    1、首次启动error(未处理)

    WARN  NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

    WARN  DependencyUtils:66 - Local jar /usr/local/spark-2.4.0/examples/jars/spark-examples_2.11-2.4.0.jar does not exist, skipping.

    WARN  SparkSubmit$$anon$2:87 - Failed to load org.apache.spark.examples.SparkPi.

    在master安装JAVA环境,

    2、第二次启动出现(已处理)

    Warning  FailedMount  48s  kubelet, node01    MountVolume.SetUp failed for volume "spark-conf-volume" : configmap "spark-pi-1581265047155-driver-conf-map" not found

    删除原来创建的pod,重新创建

    https://blog.csdn.net/qq_40155502/article/details/98071557

    3、Java 环境的

    JAVA_HOME=/usr/java/jdk1.8.0_231 JRE_HOME=/usr/java/jdk1.8.0_231/jreCLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binexport JAVA_HOME JRE_HOME CLASS_PATH PATH

    相关文章

      网友评论

          本文标题:k8s on spark

          本文链接:https://www.haomeiwen.com/subject/gfyxbxtx.html