spark on ACK

構(gòu)建spark docker 鏡像
下載spark-2.4.8-bin-hadoop2.7.tgz

Note: 這里下載spark包一定不是能是without hadoop 的慷嗜。不然構(gòu)建完以后運(yùn)行门扇,會(huì)報(bào)一些包找不到翎蹈。比如log4j

tar -xvf spark-2.4.8-bin-hadoop2.7.tgz
cd spark-2.4.8-bin-hadoop2.7

編輯spark dockerfile

vim kubernetes/dockerfiles/spark/Dockerfile

將18行的 FROM openjdk:8-jdk-slim  替換成 FROM openjdk:8-jdk-slim-buster
因?yàn)槟J(rèn)openjdk基礎(chǔ)形象是debian 11 粤策,后面的spark-py鏡像會(huì)依賴此鏡像。debian11 安裝的python3 是python3.8 以上版本。spark2.4 不支持python3.7以上版本,所以會(huì)報(bào)”TypeError:an integer is required(got type bytes)” 這樣的錯(cuò)誤诅需。

所以將基礎(chǔ)鏡像更換成debian 10。安裝的python3 的版本是3.7

構(gòu)建鏡像

bin/docker-image-tool.sh -t v2.4.8 build
由于apt-get 源是國(guó)外的構(gòu)建會(huì)比較慢荧库,最好是開代理堰塌。

沒有代理的也可以跟換國(guó)內(nèi)源 (更換國(guó)內(nèi)源會(huì)有包依賴的問(wèn)題導(dǎo)致spark-py鏡像是構(gòu)建失敗)

vim kubernetes/dockerfiles/spark/Dockerfile
在 29分衫,31行之間 加入
ADD sources.list /etc/apt/sources.list
然后把sources.list文件放在spark-2.4.8-bin-hadoop2.7目錄下
最后鏡像構(gòu)建好以后场刑,會(huì)有3個(gè)鏡像

spark、spark-py蚪战、spark-r

把這3個(gè)鏡像push到鏡像倉(cāng)庫(kù)摇邦。

spark 支持 OSS
spark 支持oss 可以再修改spark dockerfile

vim kubernetes/dockerfiles/spark/Dockerfile
將下面的幾行jar文件放在COPY data /opt/spark/data 下面
ADD https://repo1.maven.org/maven2/com/aliyun/odps/hadoop-fs-oss/3.3.8-public/hadoop-fs-oss-3.3.8-public.jar $SPARK_HOME/jars
ADD https://repo1.maven.org/maven2/com/aliyun/oss/aliyun-sdk-oss/3.8.1/aliyun-sdk-oss-3.8.1.jar $SPARK_HOME/jars
ADD https://repo1.maven.org/maven2/org/aspectj/aspectjweaver/1.9.5/aspectjweaver-1.9.5.jar $SPARK_HOME/jars
ADD https://repo1.maven.org/maven2/org/jdom/jdom/1.1.3/jdom-1.1.3.jar $SPARK_HOME/jars
也可以重新重新再寫一個(gè)dockerfile 重新構(gòu)建一個(gè)新的鏡像恤煞。保持原有鏡像
FROM acr-test01-registry.cn-beijing.cr.aliyuncs.com/netops/spark-py:v2.4.8
RUN mkdir -p /opt/spark/jars
# 如果需要使用OSS(讀取OSS數(shù)據(jù)或者離線Event到OSS),可以添加以下JAR包到鏡像中
ADD https://repo1.maven.org/maven2/com/aliyun/odps/hadoop-fs-oss/3.3.8-public/hadoop-fs-oss-3.3.8-public.jar $SPARK_HOME/jars
ADD https://repo1.maven.org/maven2/com/aliyun/oss/aliyun-sdk-oss/3.8.1/aliyun-sdk-oss-3.8.1.jar $SPARK_HOME/jars
ADD https://repo1.maven.org/maven2/org/aspectj/aspectjweaver/1.9.5/aspectjweaver-1.9.5.jar $SPARK_HOME/jars
ADD https://repo1.maven.org/maven2/org/jdom/jdom/1.1.3/jdom-1.1.3.jar $SPARK_HOME/jars
docker build -t ack-spark-oss:v2.4.8 .
docker tag
docker push
spark on ack yaml

這個(gè)yaml是用來(lái)提交spark任務(wù)施籍。

scala 居扒、java 和 python 不太一樣。

apiVersion: "sparkoperator.k8s.io/v1beta2"
kind: SparkApplication
metadata:
  name: spark-pi
  namespace: default
spec:
  type: Scala
  mode: cluster
  image: "acr-test01-registry.cn-beijing.cr.aliyuncs.com/netops/ack-spark-2.4.5:v9"
  imagePullPolicy: Always
  mainClass: org.apache.spark.examples.SparkPi
  mainApplicationFile: "oss://qa-oss/spark-examples_2.11-2.4.8.jar"
  sparkConf:
    "spark.eventLog.enabled": "true"
    "spark.eventLog.dir": "oss://qa-oss/spark-events"
    "spark.hadoop.fs.oss.impl": "org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem"
    "spark.hadoop.fs.oss.endpoint": "oss-cn-beijing-internal.aliyuncs.com"
    "spark.hadoop.fs.oss.accessKeySecret": "OSd0RVN"
    "spark.hadoop.fs.oss.accessKeyId": "LTADXrW"
  sparkVersion: "2.4.5"
  imagePullSecrets: [spark]
  restartPolicy:
    type: Never
  driver:
    cores: 2
    coreLimit: "2"
    memory: "3g"
    memoryOverhead: "1g"
    labels:
      version: 2.4.5
    serviceAccount: spark
    annotations:
      k8s.aliyun.com/eci-kube-proxy-enabled: 'true'
      k8s.aliyun.com/eci-image-cache: "true"
  executor:
    cores: 2
    instances: 5
    memory: "3g"
    memoryOverhead: "1g"
    labels:
      version: 2.4.5
    annotations:
      k8s.aliyun.com/eci-kube-proxy-enabled: 'true'
      k8s.aliyun.com/eci-image-cache: "true"

如果你的鏡像倉(cāng)庫(kù)是public的就不需要imagePullSecrets 這個(gè)參數(shù)丑慎。

如果你的鏡像倉(cāng)庫(kù)是帶驗(yàn)證的喜喂。那么就要使用imagePullSecrets 在驗(yàn)證,后面[spark] 是一個(gè)configmap 里面是鏡像倉(cāng)庫(kù)用戶名竿裂,密碼

另外mainApplicationFile 這個(gè)是任務(wù)jar 包位置玉吁。可以是 oss,或是 hdfs 如果用local就需要jar 在鏡像內(nèi)腻异。

sparkconf 部分是配置 spark-history 进副,如果不需要?jiǎng)h除掉。

apiVersion: "sparkoperator.k8s.io/v1beta2"
kind: SparkApplication
metadata:
  name: spark-pi
  namespace: default
spec:
  type: Python
  mode: cluster
  image: "acr-test01-registry.cn-beijing.cr.aliyuncs.com/netops/ack-spark-2.4.5:v9"
  imagePullPolicy: Always
  mainApplicationFile: "local:///opt/spark/examples/src/main/python/pi.py"
  sparkVersion: "2.4.5"
  pythonVersion: "3"
  imagePullSecrets: [spark]
  restartPolicy:
    type: Never
  driver:
    cores: 2
    coreLimit: "2"
    memory: "3g"
    memoryOverhead: "1g"
    labels:
      version: 2.4.5
    serviceAccount: spark
    annotations:
      k8s.aliyun.com/eci-kube-proxy-enabled: 'true'
      k8s.aliyun.com/eci-image-cache: "true"
  executor:
    cores: 2
    instances: 5
    memory: "3g"
    memoryOverhead: "1g"
    labels:
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末悔常,一起剝皮案震驚了整個(gè)濱河市影斑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌机打,老刑警劉巖矫户,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異残邀,居然都是意外死亡皆辽,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門芥挣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)驱闷,“玉大人,你說(shuō)我怎么就攤上這事空免∫潘裕” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵鼓蜒,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我征字,道長(zhǎng)都弹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任匙姜,我火速辦了婚禮畅厢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘氮昧。我一直安慰自己框杜,他們只是感情好浦楣,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著咪辱,像睡著了一般振劳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上油狂,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天历恐,我揣著相機(jī)與錄音,去河邊找鬼专筷。 笑死弱贼,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的磷蛹。 我是一名探鬼主播吮旅,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼味咳!你這毒婦竟也來(lái)了庇勃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤莺葫,失蹤者是張志新(化名)和其女友劉穎匪凉,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捺檬,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡再层,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了堡纬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片聂受。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖烤镐,靈堂內(nèi)的尸體忽然破棺而出蛋济,到底是詐尸還是另有隱情,我是刑警寧澤炮叶,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布碗旅,位于F島的核電站,受9級(jí)特大地震影響镜悉,放射性物質(zhì)發(fā)生泄漏祟辟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一侣肄、第九天 我趴在偏房一處隱蔽的房頂上張望旧困。 院中可真熱鬧,春花似錦、人聲如沸吼具。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)拗盒。三九已至怖竭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锣咒,已是汗流浹背侵状。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留毅整,地道東北人趣兄。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像悼嫉,于是被迫代替她去往敵國(guó)和親艇潭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容