基于Kubernetes的Spark集群部署實(shí)踐

本文作為一個(gè)輔助筆記,詳細(xì)內(nèi)容參考http://hehhpku.blog.51cto.com/3438622/1844785


Spark是新一代分布式內(nèi)存計(jì)算框架,Apache開源的頂級(jí)項(xiàng)目。相比于Hadoop Map-Reduce計(jì)算框架,Spark將中間計(jì)算結(jié)果保留在內(nèi)存中,速度提升10~100倍;同時(shí)它還提供更豐富的算子,采用彈性分布式數(shù)據(jù)集(RDD)實(shí)現(xiàn)迭代計(jì)算,更好地適用于數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)算法,極大提升開發(fā)效率。

Docker是輕量級(jí)虛擬化容器技術(shù),具有輕便性、隔離性、一致性等特點(diǎn),可以極大簡(jiǎn)化開發(fā)者的部署運(yùn)維流程,降低服務(wù)器成本。

Kubernetes是Google開源的容器集群管理系統(tǒng),提供應(yīng)用部署、維護(hù)、 擴(kuò)展等功能,能夠方便地管理大規(guī)??缰鳈C(jī)的容器應(yīng)用。

相比于在物理機(jī)上部署,在Kubernetes集群上部署Spark集群,具有以下優(yōu)勢(shì):

快速部署:安裝1000臺(tái)級(jí)別的Spark集群,在Kubernetes集群上只需設(shè)定worker副本數(shù)目replicas=1000,即可一鍵部署。

快速升級(jí):升級(jí)Spark版本,只需替換Spark鏡像,一鍵升級(jí)。

彈性伸縮:需要擴(kuò)容、縮容時(shí),自動(dòng)修改worker副本數(shù)目replicas即可。

高一致性:各個(gè)Kubernetes節(jié)點(diǎn)上運(yùn)行的Spark環(huán)境一致、版本一致

高可用性:如果Spark所在的某些node或pod死掉,Kubernetes會(huì)自動(dòng)將計(jì)算任務(wù),轉(zhuǎn)移到其他node或創(chuàng)建新pod。

強(qiáng)隔離性:通過設(shè)定資源配額等方式,可與WebService應(yīng)用部署在同一集群,提升機(jī)器資源使用效率,從而降低服務(wù)器成本。

一、構(gòu)建Docker鏡像

docker login index.docker.io

docker?pull?index.docker.io/caicloud/spark:1.5.2

docker?pull?index.docker.io/caicloud/zeppelin:0.5.6

二、在Kubernetes上創(chuàng)建Spark集群

第一步:創(chuàng)建命名空間namespace

使用Namespace: (${CLUSTER_NAME}和${USER_NAME}可在kubeconfig文件中查看)

$?kubectl?config?set-context?spark?--namespace=spark-cluster?--cluster=${CLUSTER_NAME}?--user=${USER_NAME}

$?kubectl?config?use-context?spark

第二步:?jiǎn)?dòng)master服務(wù)

1) 創(chuàng)建ReplicationController:

spark-master-controller.yaml

spark-worker-controller.yaml

2) 創(chuàng)建Master-Service

3) 創(chuàng)建WebUI-Service

第三步:?jiǎn)?dòng) Spark workers

spark-worker-controller.yaml

查看 workers是否正常運(yùn)行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容