k8s on spark

一、安装部署

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,490评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,581评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,830评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,957评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,974评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,754评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,464评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,847评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,995评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,137评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,819评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,482评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,023评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,149评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,409评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,086评论 2 355

推荐阅读更多精彩内容

  • 背景介绍 相信凡是关注容器生态圈的人都不会否认,Kubernetes 已经成为容器编排调度的实际标准,不论 Doc...
    Kyligence阅读 1,476评论 0 1
  • 首先 已有一个高于1.8的k8s集群 我的是CentOS7 下载spark 2.4.0 -https://www....
    morphtin阅读 6,732评论 0 1
  • 一、简介 Spark是UC Berkeley AMPLab开发的类MapRed计算框架。MapRed框架适用于ba...
    鹅鹅鹅_阅读 2,143评论 0 0
  • 再小的梦想 也能撑起最大的世界 春节的余味还没有结束 地球依然在转 四季轮回不换 在中国960万平方公里的土地上 ...
    龙小叨阅读 260评论 0 2
  • 拆开钱这个字,金,戈。一边代表利,一边代表弊。但凡涉及到钱的事儿,总有那么七两酱油八两醋的故事可以来扯。 作为一个...
    花花的樱花阅读 314评论 3 2