精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Spark on Kubernetes 的現狀與挑戰

云計算 Spark
云原生時代,Kubernetes 的重要性日益凸顯,這篇文章以 Spark 為例來看一下大數據生態 on Kubernetes 生態的現狀與挑戰。

云原生時代,Kubernetes 的重要性日益凸顯,這篇文章以 Spark 為例來看一下大數據生態 on Kubernetes 生態的現狀與挑戰。

1. Standalone 模式

Spark 運行在 Kubernetes 集群上的第一種可行方式是將 Spark 以 Standalone 模式運行,但是很快社區就提出使用 Kubernetes 原生 Scheduler 的運行模式,也就是 Native 的模式。關于 Standalone 模式這里就沒有繼續討論的必要了。

2. Kubernetes Native 模式

Native 模式簡而言之就是將 Driver 和 Executor Pod 化,用戶將之前向 YARN 提交 Spark 作業的方式提交給 Kubernetes 的 apiserver,提交命令如下: 

  1. $ bin/spark-submit \ 
  2.     --master k8s://https://<k8s-apiserver-host>:<k8s-apiserver-port> \ 
  3.     --deploy-mode cluster \ 
  4.     --name spark-pi \ 
  5.     --class org.apache.spark.examples.SparkPi \ 
  6.     --conf spark.executor.instances=5 \ 
  7.     --conf spark.kubernetes.container.image=<spark-image> \ 
  8.     local:///path/to/examples.jar 

其中 master 就是 kubernetes 的 apiserver 地址。提交之后整個作業的運行方式如下,先將 Driver 通過 Pod 啟動起來,然后 Driver 會啟動 Executor 的 Pod。這些方式很多人應該都了解了,就不贅述了,詳細信息可以參考:https://spark.apache.org/docs/latest/running-on-kubernetes.html 。

Spark on Kubernetes 的現狀與挑戰

3. Spark Operator

除了這種直接想 Kubernetes Scheduler 提交作業的方式,還可以通過 Spark Operator 的方式來提交。Operator 在 Kubernetes 中是一個非常重要的里程碑。在 Kubernetes 剛面世的時候,關于有狀態的應用如何部署在 Kubernetes 上一直都是官方不愿意談論的話題,直到 StatefulSet 出現。StatefulSet 為有狀態應用的部署實現了一種抽象,簡單來說就是保證網絡拓撲和存儲拓撲。但是狀態應用千差萬別,并不是所有應用都能抽象成 StatefulSet,強行適配反正加重了開發者的心智負擔。

然后 Operator 出現了。我們知道 Kubernetes 給開發者提供了非常開放的一種生態,你可以自定義 CRD,Controller 甚至 Scheduler。而 Operator 就是 CRD + Controller 的組合形式。開發者可以定義自己的 CRD,比如我定義一種 CRD 叫 EtcdCluster 如下: 

  1. apiVersion: "etcd.database.coreos.com/v1beta2" 
  2. kind: "EtcdCluster" 
  3. metadata: 
  4.   name"example-etcd-cluster" 
  5. spec: 
  6.   size: 3 
  7.   version: "3.1.10" 
  8.   repository: "quay.io/coreos/etcd" 

提交到 Kubernetes 之后 Etcd 的 Operator 就針對這個 yaml 中的各個字段進行處理,最后部署出來一個節點規模為 3 個節點的 etcd 集群。你可以在 github 的這個 repo:https://github.com/operator-framework/awesome-operators 中查看目前實現了 Operator 部署的分布式應用。

Google 云平臺,也就是 GCP 在 github 上面開源了 Spark 的 Operator,repo 地址:。Operator 部署起來也是非常的方便,使用 Helm Chart 方式部署如下,你可以簡單認為就是部署一個 Kubernetes 的 API Object (Deployment)。 

  1. $ helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator 
  2. $ helm install incubator/sparkoperator --namespace spark-operator 

這個 Operator 涉及到的 CRD 如下: 

  1. ScheduledSparkApplication 
  2. |__ ScheduledSparkApplicationSpec 
  3.     |__ SparkApplication 
  4. |__ ScheduledSparkApplicationStatus 
  5.  
  6. |__ SparkApplication 
  7. |__ SparkApplicationSpec 
  8.     |__ DriverSpec 
  9.         |__ SparkPodSpec 
  10.     |__ ExecutorSpec 
  11.         |__ SparkPodSpec 
  12.     |__ Dependencies 
  13.     |__ MonitoringSpec 
  14.         |__ PrometheusSpec 
  15. |__ SparkApplicationStatus 
  16.     |__ DriverInfo     

如果我要提交一個作業,那么我就可以定義如下一個 SparkApplication 的 yaml,關于 yaml 里面的字段含義,可以參考上面的 CRD 文檔。 

  1. apiVersion: sparkoperator.k8s.io/v1beta1 
  2. kind: SparkApplication 
  3. metadata: 
  4.   ... 
  5. spec: 
  6.   deps: {} 
  7.   driver: 
  8.     coreLimit: 200m 
  9.     cores: 0.1 
  10.     labels: 
  11.       version: 2.3.0 
  12.     memory: 512m 
  13.     serviceAccount: spark 
  14.   executor: 
  15.     cores: 1 
  16.     instances: 1 
  17.     labels: 
  18.       version: 2.3.0 
  19.     memory: 512m 
  20.   image: gcr.io/ynli-k8s/spark:v2.4.0 
  21.   mainApplicationFile: local:///opt/spark/examples/jars/spark-examples_2.11-2.3.0.jar 
  22.   mainClass: org.apache.spark.examples.SparkPi 
  23.   mode: cluster 
  24.   restartPolicy: 
  25.       type: OnFailure 
  26.       onFailureRetries: 3 
  27.       onFailureRetryInterval: 10 
  28.       onSubmissionFailureRetries: 5 
  29.       onSubmissionFailureRetryInterval: 20 
  30.   type: Scala 
  31. status: 
  32.   sparkApplicationId: spark-5f4ba921c85ff3f1cb04bef324f9154c9 
  33.   applicationState: 
  34.     state: COMPLETED 
  35.   completionTime: 2018-02-20T23:33:55Z 
  36.   driverInfo: 
  37.     podName: spark-pi-83ba921c85ff3f1cb04bef324f9154c9-driver 
  38.     webUIAddress: 35.192.234.248:31064 
  39.     webUIPort: 31064 
  40.     webUIServiceName: spark-pi-2402118027-ui-svc 
  41.     webUIIngressName: spark-pi-ui-ingress 
  42.     webUIIngressAddress: spark-pi.ingress.cluster.com 
  43.   executorState: 
  44.     spark-pi-83ba921c85ff3f1cb04bef324f9154c9-exec-1: COMPLETED 
  45.   LastSubmissionAttemptTime: 2018-02-20T23:32:27Z 

提交作業。

  1. $ kubectl apply -f spark-pi.yaml 

對比來看 Operator 的作業提交方式似乎顯得更加的冗長復雜,但是這也是一種更 kubernetes 化的 api 部署方式,也就是 Declarative API,聲明式 API。

4. 挑戰

基本上,目前市面的大部門公司都是使用上面兩種方式來做 Spark on Kubernetes 的,但是我們也知道在 Spark Core 里面對 Kubernetes 的這種 Native 方式支持其實并不是特別成熟,還有很多可以改善的地方:

1.scheduler 差異。

資源調度器可以簡單分類成集中式資源調度器和兩級資源調度器。兩級資源調度器有一個中央調度器負責宏觀資源調度,對于某個應用的調度則由下面分區資源調度器來做。兩級資源調度器對于大規模應用的管理調度往往能有一個良好的支持,比如性能方面,缺點也很明顯,實現復雜。其實這種設計思想在很多地方都有應用,比如內存管理里面的 tcmalloc 算法,Go 語言的內存管理實現。大數據的資源調度器 Mesos/Yarn,某種程度上都可以歸類為兩級資源調度器。

集中式資源調度器對于所有的資源請求進行響應和決策,這在集群規模大了之后難免會導致一個單點瓶頸,毋庸置疑。但是 Kubernetes 的 scheduler 還有一點不同的是,它是一種升級版,一種基于共享狀態的集中式資源調度器。Kubernetes 通過將整個集群的資源緩存到 scheduler 本地,在進行資源調度的時候在根據緩存的資源狀態來做一個 “樂觀” 分配(assume + commit)來實現調度器的高性能。

Kubernetes 的默認調度器在某種程度上并不能很好的 match Spark 的 job 調度需求,對此一種可行的技術方案是再提供一種 custom scheduler,比如 Spark on Kubernetes Native 方式的參與者之一的大數據公司 Palantir 就開源了他們的 custom scheduler,github repo: https://github.com/palantir/k8s-spark-scheduler。

2.集群規模瓶頸。

基本上現在可以確定的是 Kubernetes 會在集群規模達到五千臺的時候出現瓶頸,但是在很早期的時候 Spark 發表論文的時候就聲稱 Spark Standalone 模式可以支持一萬臺規模。Kubernetes 的瓶頸主要體現在 master 上,比如用來做元數據存儲的基于 raft 一致性協議的 etcd 和 apiserver 等。對此在剛過去的 2019 上海 KubeCon 大會上,阿里巴巴做了一個關于提高 master 性能的 session: 了解 Kubernetes Master 的可擴展性和性能,感興趣的可以自行了解。

3.Pod 驅逐(Eviction)問題。

在 Kubernetes 中,資源分為可壓縮資源(比如 CPU)和不可壓縮資源(比如內存),當不可壓縮資源不足的時候就會將一些 Pod 驅逐出當前 Node 節點。國內某個大廠在使用 Spark on kubernetes 的時候就遇到因為磁盤 IO 不足導致 Spark 作業失敗,從而間接導致整個測試集都沒有跑出來結果。如何保證 Spark 的作業 Pod (Driver/Executor) 不被驅逐呢?這就涉及到優先級的問題,1.10 之后開始支持。但是說到優先級,有一個不可避免的問題就是如何設置我們的應用的優先級?常規來說,在線應用或者 long-running 應用優先級要高于 batch job,但是顯然對于 Spark 作業來說這并不是一種好的方式。

4.作業日志。

Spark on Yarn 的模式下,我們可以將日志進行 aggregation 然后查看,但是在 Kubernetes 中暫時還是只能通過 Pod 的日志查看,這塊如果要對接 Kubernetes 生態的話可以考慮使用 fluentd 或者 filebeat 將 Driver 和 Executor Pod 的日志匯總到 ELK 中進行查看。

5.Prometheus 生態。

Prometheus 作為 CNCF 畢業的第二個項目,基本是 Kubernetes 監控的標配,目前 Spark 并沒有提供 Prometheus Sink。而且 Prometheus 的數據讀取方式是 pull 的方式,對于 Spark 中 batch job 并不適合使用 pull 的方式,可能需要引入 Prometheus 的 pushgateway。

5. 結語

被稱為云上 OS 的 Kubernetes 是 Cloud Native 理念的一種技術承載與體現,但是如何通過 Kubernetes 來助力大數據應用還是有很多可以探索的地方。歡迎交流。

責任編輯:未麗燕 來源: 阿里云棲社區
相關推薦

2025-09-08 05:10:00

KubernetesAINative

2021-09-09 10:13:52

人工智能AI無人機

2025-09-01 02:15:00

公有云安全產業生態

2010-12-17 15:58:51

數據中心現狀

2017-04-17 15:00:42

SDNNFVCSP

2021-12-24 10:47:49

Kubernetes容器化微服務

2025-04-03 08:23:00

機器身份安全網絡安全機器身份

2023-04-04 15:12:07

深度學習機器學習

2021-06-16 10:05:03

數字化

2020-06-17 09:44:44

Kubernetes容器開發

2018-06-21 15:14:51

Kubernetes存儲容器

2018-07-19 10:56:16

Kubernetes存儲架構

2021-02-19 09:20:04

KubernetesSpark云帳戶

2021-12-30 07:42:13

Kubernetes集群架構

2022-03-15 14:55:34

Kubernetes

2020-09-28 14:05:08

2019-11-26 17:54:14

開發技能移動應用

2021-08-18 15:40:57

5G專網運營商

2022-04-09 08:49:28

元宇宙

2013-05-23 09:58:18

融合系統未來基礎設施
點贊
收藏

51CTO技術棧公眾號

www.爱爱.com| 欧美激情亚洲色图| 美女91在线看| 国产女人水真多18毛片18精品视频| 国产精品91久久| 男女羞羞免费视频| 猛男gaygay欧美视频| 欧美裸体bbwbbwbbw| 毛片在线视频观看| 国产一二三区在线| 97精品久久| 中文字幕+乱码+中文字幕一区| 国产一区二区色| 日本少妇裸体做爰| 日韩免费一区| 亚洲精品白浆高清久久久久久| 污污动漫在线观看| 精精国产xxxx视频在线野外| 国产精品久久久久久户外露出| 成人免费在线看片| 在线播放国产一区| 香蕉久久国产| 久久久久五月天| 老司机深夜福利网站| 神马香蕉久久| 性做久久久久久免费观看| 日韩精品久久久| 国产一级淫片a视频免费观看| 91亚洲国产高清| 日韩精品在线免费观看视频| 巨乳女教师的诱惑| 国产精品99精品一区二区三区∴| 国产午夜亚洲精品理论片色戒| 97人人做人人爱| 男女一区二区三区| 一区二区三区无毛| 欧美网站一区二区| 免费在线观看日韩视频| mm视频在线视频| 亚洲美女少妇撒尿| 一本一本a久久| 国产人成在线视频| 久久亚区不卡日本| 极品日韩久久| 日韩一级片免费观看| 国产一区欧美日韩| 91九色国产在线| 亚洲天堂视频网| 日本在线不卡视频一二三区| 欧美最顶级的aⅴ艳星| 国产在线视频你懂的| 午夜欧美精品| 色综合天天狠天天透天天伊人| 成年女人免费视频| 国产一区二区av在线| 欧美裸体一区二区三区| 在线看免费毛片| 欧美视频免费看| 欧美日韩国产天堂| 欧美大片久久久| www.久久草.com| 91精品国产综合久久蜜臀| 国产欧美激情视频| 久久久久久久久成人| 欧美第一区第二区| 欧美极品jizzhd欧美仙踪林| 77成人影视| 亚洲国产91色在线| 91精品小视频| 久久最新网址| 日韩中文字幕在线视频播放| 国产成人精品视频免费| 精品少妇一区| 欧美乱妇20p| 亚洲制服中文字幕| 视频一区在线| 亚洲第一精品电影| v8888av| 亚洲欧洲日韩精品在线| 91精品国产一区二区三区蜜臀| 久久久福利影院| 91成人精品在线| 日韩精品中文字幕在线| 日本一区二区视频在线播放| 香蕉av一区二区| 亚洲色图五月天| 国产美女网站视频| 欧美精品不卡| 欧美亚洲在线观看| 在线免费看av片| 国产宾馆实践打屁股91| 久精品国产欧美| av在线天堂| 亚洲影院在线观看| 亚洲一区二区三区涩| 在线电影福利片| 欧美国产成人精品| 黄色一级大片免费| 神马久久资源| 欧美午夜女人视频在线| 一本色道久久亚洲综合精品蜜桃| 亚洲国产aⅴ精品一区二区| 国产视频亚洲精品| 欧美日韩午夜视频| 久久婷婷激情| 春色成人在线视频| 国产中文字幕在线看| 一区二区三区四区中文字幕| 搡女人真爽免费午夜网站| 免费欧美网站| 中文在线不卡视频| www..com.cn蕾丝视频在线观看免费版| 日韩在线观看电影完整版高清免费悬疑悬疑| 久久99热精品| 91国偷自产中文字幕久久| 91色综合久久久久婷婷| 欧美日韩中文字幕在线播放| 成人在线观看免费播放| 日韩电影大全免费观看2023年上| 国产精品夜夜夜爽阿娇| 免费在线成人| 国精产品一区二区| 四虎永久在线精品免费网址| 成人一区在线观看| 亚洲一区二区三区加勒比| 竹内纱里奈兽皇系列在线观看 | 欧美黄色一级大片| 成人看片黄a免费看在线| 日本一级淫片演员| 在线观看小视频| 欧美日韩一区视频| 国产人妻一区二区| 国产欧美三级| 国产精品大全| 亚洲奶水xxxx哺乳期| 亚洲久草在线视频| 538任你躁在线精品免费| 美女主播精品视频一二三四| 欧美成人午夜视频| 91久久精品国产91性色69| 久久蜜桃av一区二区天堂| 黄色一级视频在线播放| 国产精品男女| 97精品一区二区三区| 丰满人妻一区二区三区免费| 一区二区三区欧美久久| 男女视频在线观看网站| 99久久久久国产精品| 91精品国产综合久久香蕉| 在线观看免费高清完整| 欧美图区在线视频| www成人啪啪18软件| 蜜臀va亚洲va欧美va天堂| 亚洲精品乱码视频| 欧美视频第一| 久久国产精品电影| 亚洲国产999| 亚洲午夜精品17c| 最近日本中文字幕| 美女尤物久久精品| 日韩精品一区二区三区四区五区| 在线看欧美视频| 中文字幕在线观看亚洲| 91精品在线视频观看| 中文字幕亚洲成人| 久久黄色一级视频| 在线亚洲免费| 日韩.欧美.亚洲| 在线免费成人| 欧美激情视频在线免费观看 欧美视频免费一 | 国产福利免费在线观看| 欧美午夜寂寞影院| 日韩精品123区| 成人午夜免费电影| 波多野结衣家庭教师在线播放| 欧美热在线视频精品999| 国产欧美日韩综合精品| gogo在线观看| 亚洲国产精品免费| 中文字幕男人天堂| 成人a免费在线看| 亚洲中文字幕无码专区| 凹凸成人精品亚洲精品密奴| 韩国三级电影久久久久久| 亚洲色图狠狠干| 欧美三日本三级三级在线播放| www.97视频| 99精品欧美一区二区蜜桃免费| 玩弄japan白嫩少妇hd| 欧美国产小视频| 国产精品果冻传媒潘| 日韩欧美另类一区二区| 久久夜色撩人精品| 免费福利在线观看| 日韩一级欧美一级| 黄色片中文字幕| 亚洲男人天堂一区| 老熟妇一区二区| 国产99久久久国产精品免费看| 六月激情综合网| 欧美激情 亚洲a∨综合| 欧洲av一区| 日韩大片欧美大片| 欧美成人午夜激情在线| 国内精品一区视频| 欧美大片一区二区三区| 这里只有精品国产| 国产欧美1区2区3区| 精品人妻二区中文字幕| 日韩国产欧美视频| 九一国产精品视频| 亚洲精品国产成人影院| 欧美亚州在线观看| 91精品尤物| 国产在线日韩在线| 日本高清不卡一区二区三区视频| 欧美老肥婆性猛交视频| 91九色在线porn| 亚洲久久久久久久久久久| 国产不卡精品视频| 一区二区免费看| 奇米网一区二区| 久久先锋资源网| 怡红院一区二区| 国产精品白丝jk黑袜喷水| 欧美一级特黄a| 久久精品官网| 又粗又黑又大的吊av| 欧美黄免费看| 在线观看免费91| 成人羞羞视频在线看网址| 久久久久资源| 欧美精品国产白浆久久久久| 成人黄色片视频网站| 精品一区二区三区中文字幕| 国产精品自拍视频| av一区在线| 国产精品久久久久91| 欧美电影免费看| 日本久久久久久久| 伊人久久综合一区二区| 国产91av在线| 综合毛片免费视频| 欧美伊久线香蕉线新在线| 国产免费拔擦拔擦8x高清在线人| 欧美激情亚洲国产| a'aaa级片在线观看| 国内免费精品永久在线视频| √最新版天堂资源网在线| 欧美激情手机在线视频| 操人在线观看| 51久久精品夜色国产麻豆| 午夜av不卡| 国产精品wwwwww| 精品日本视频| 国产日本欧美一区二区三区在线| 免费一级欧美在线观看视频| 成人国产在线激情| 精品国产一区二| 成人av电影免费| 日韩av黄色在线| 欧美一区二区三区电影在线观看| 欧美精品一区二区三区中文字幕| 午夜精品一区二区在线观看的 | www.国产亚洲| 亚洲黄色一区| 999精品网站| 久久99精品久久久| 国产人妻精品午夜福利免费| 不卡一区在线观看| 中文字幕免费视频| 国产精品国产三级国产aⅴ中文| 男人的天堂久久久| 午夜不卡av免费| 日本欧美www| 日韩欧美综合一区| 天堂在线观看av| 亚洲无亚洲人成网站77777| 欧美18hd| 97avcom| 91精品美女| 成人午夜电影免费在线观看| 久久综合影院| 50度灰在线观看| 乱码第一页成人| 在线视频一二区| 99麻豆久久久国产精品免费优播| 一级黄色录像毛片| 亚洲一级在线观看| 国产精品成人久久久| 日韩一区二区精品在线观看| 视频福利在线| 久久av红桃一区二区小说| 男人av在线播放| 成人欧美一区二区三区在线| 久草精品视频| 精品日韩在线播放| 久久久久在线| 性折磨bdsm欧美激情另类| 久久久久久亚洲综合| 欧美国产日韩在线观看成人| 色婷婷久久久亚洲一区二区三区| 国产成人av免费看| 亚洲日本中文字幕| 久草免费在线色站| 91精品久久久久久久久不口人| 精品亚洲精品| 欧美日韩中文字幕在线播放| 日本亚洲视频在线| 一区二区三区少妇| 亚洲免费观看高清在线观看| 无码人妻熟妇av又粗又大| 精品人在线二区三区| 欧美精品电影| 国产成人精品在线视频| 精品网站aaa| 免费一级淫片aaa片毛片a级| 久久超碰97中文字幕| 亚洲区自拍偷拍| 欧美日韩国产精品一区二区三区四区| 99久久精品免费看国产交换| 中文字幕免费精品一区高清| 在线观看欧美日韩电影| av激情久久| 午夜精品免费| 亚洲黄色av片| 亚洲欧洲无码一区二区三区| 国产一区二区视频免费| 亚洲欧美日韩精品久久| 日本黄色免费在线| 国产有色视频色综合| 黄色精品一区| 久久久久国产免费| 亚洲综合色视频| 成人高潮片免费视频| 久久综合国产精品台湾中文娱乐网| 丁香婷婷久久| 亚洲午夜精品福利| 麻豆精品视频在线观看| 九九九视频在线观看| 欧美色手机在线观看| h视频在线播放| 国产精品爽爽爽爽爽爽在线观看| 精品国产美女| 亚洲综合欧美激情| 国产精品丝袜91| 91成人在线免费| 久久婷婷国产麻豆91天堂 | 91精品国产色综合久久不卡蜜臀| av电影在线观看一区二区三区| 国产精品白丝jk喷水视频一区| 精品国产一区二区三区噜噜噜 | 中文字幕精品三区| 中文字幕永久在线观看| 日韩在线视频播放| 精品视频在线观看免费观看 | 日韩精品自拍偷拍| 黄色大片在线| 久久香蕉综合色| 日韩精品成人一区二区三区| 欧美丰满美乳xxⅹ高潮www| 欧美日韩另类国产亚洲欧美一级| 日本www在线观看| 亚洲自拍偷拍在线| 亚洲激情午夜| 中文幕无线码中文字蜜桃| 欧美三级日韩三级| av电影高清在线观看| 国内外成人免费视频| 日韩精品电影在线| 黄色一级大片在线免费观看| 欧美mv日韩mv亚洲| xx欧美xxx| 超碰免费在线公开| 成人av在线资源网| www.亚洲激情| 精品中文字幕乱| 天天躁日日躁狠狠躁欧美巨大小说| 亚洲 中文字幕 日韩 无码| 激情欧美一区二区| 精品97人妻无码中文永久在线 | 精品视频在线一区二区| 国产精品9999久久久久仙踪林| 国产精品久久久亚洲一区| 你懂得视频在线观看| 精品欧美一区二区三区精品久久| 在线天堂中文资源最新版| 正在播放一区| 91亚洲精品久久久蜜桃| 国产一区二区在线不卡| 91干在线观看| 亚洲国产精品成人| 国产女主播喷水高潮网红在线| 这里只有精品99re| 在线黄色的网站| 四虎免费在线观看视频| 99re视频精品| 精品国产伦一区二区三| 国产精品免费一区| 国产农村妇女精品一二区|