Spark on k8s 試用步驟

2021-08-16 21:03:54 字數 1454 閱讀 1768

spark 2.3.0 開始支援使用k8s 作為資源管理原生排程spark。使用k8s原生排程的spark主要有以下好處:

採用k8s原生排程,不再需要二級排程,直接使用k8s原生的排程模組,實現與其他應用的混布;

資源隔離:任務可以提交到指定的namespace,這樣可以復用k8s原生的qouta限制,實現任務資源的限制;

資源分配:可以指定每個spark任務的指定資源限制,任務之間更加隔離;

乙個k8s 1.7版本以上的集群,由於spark on k8s 任務提交後實際上在集群中是以custom resources和custom controller的形式,故你需要乙個1.7+版本的k8s集群,同時需要啟動k8s dns和rbac。

以下為基礎映象,包含了spark和官方exemples,本文的試用使用的是該官方的exemple。

cd /path/to/spark-2.3.0-bin-hadoop2.7

docker build -t /spark:2.3.0

-f kubernetes/dockerfiles/spark/dockerfile .

docker push /spark:2.3.0

bin/spark-submit \

--master k8s://\

--deploy-mode cluster \

--name spark-pi \

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

--conf spark.executor.instances=5 \

--conf spark.kubernetes.container.image=/spark:2.3.0 \

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

更多預設的引數配置請參考:1.spark running on k8s

注意以下坑:

spark demo跑了起來後,可以看到spark-submit相當於起了乙個controller, 用於管理單個spark任務,首先會建立該任務的servicedriver,待driver執行後,會啟動exeuctor,個數為--conf spark.executor.instances=5指定的引數,待執行完畢後,submit會自動刪除exeuctor,driver會用預設的gc機制清理。

spark running on k8s

issue #34377

k8s安裝步驟

第一天 說明 1 如果不是root,則通過su root進行切換。root預設密碼修改方式 sudo passwd root,本次設定為111111 2 hostname主機名不能有大寫。如果需要修改,參考 sudo hostnamectl set hostname master 3 可能的依賴包 ...

k8s安裝及部署步驟

國內安裝k8s的四種途徑 1.使用kubeadmin通過離線映象安裝 2.使用阿里公有雲平台k8s,鈔能力 3.通過yum官方倉庫安裝,上古版本 4.二進位製包的形式進行安裝,kubeasz github 安裝步驟 一 環境配置 1.設定主機名與時區 timedatectl set timezone...

k8s彈性伸縮概念以及測試用例

本文原文出處 彈性伸縮式k8s中的一大亮點功能,當負載大的時候,你可以對應用進行擴容,提公升pod的副本數來應對大量的流量,當負載小的時候可以對應用進行縮容,以避免資源浪費。也可以讓應用自動的進行擴容和縮容,這一功能有用。例如當微博出現了乙個話題時,這個時候人們都去訪問,此時他的伺服器將無法處理大量...