您好,登錄后才能下訂單哦!
這篇文章主要介紹“Spark的集群deploy模式有哪些”,在日常操作中,相信很多人在Spark的集群deploy模式有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Spark的集群deploy模式有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
Spark有三種集群部署模式,或者叫做集群管理模式。分別是standalone,YARN和Mesos。這三種模式其實(shí)都是master/slave模式。
三種集群資源管理概述
Spark Standalone
作為Spark的一部分,Standalone是一個(gè)簡單的集群管理器。它具有master的HA,彈性應(yīng)對WorkerFailures,對每個(gè)應(yīng)用程序的管理資源的能力,并且可以在現(xiàn)有的Hadoop一起運(yùn)行和訪問HDFS的數(shù)據(jù)。該發(fā)行版包括一些腳本,可以很容易地部署在本地或在AmazonEC2云計(jì)算。它可以在Linux,Windows或Mac OSX上運(yùn)行。
Apache Mesos
Apache Mesos ,分布式系統(tǒng)內(nèi)核,具有HA的masters和slaves,可以管理每個(gè)應(yīng)用程序的資源,并對Docker容器有很好的支持。它可以運(yùn)行Spark工作, Hadoop的MapReduce的,或任何其他服務(wù)的應(yīng)用程序。它有Java, Python和C ++ 的API。它可以在Linux或Mac OSX上運(yùn)行。
Hadoop YARN
Hadoop YARN,作業(yè)調(diào)度和集群資源管理的分布式計(jì)算框架,具有HA為masters和slaves,在非安全模式下支持Docker容器,在安全模式下支持 Linux和Windows container executors,和可插拔的調(diào)度器。它可以運(yùn)行在Linux和Windows上運(yùn)行。
集群資源調(diào)度能力的對比
模式資源調(diào)度能力比對SecurityHA
standalone 只支持FIFO調(diào)度器,單用戶串行,默認(rèn)所有節(jié)點(diǎn)的所有資源對應(yīng)用都可用,node節(jié)點(diǎn)的限制,cpu內(nèi)存等限制可以通過SparkConf來控制 shared secret ,SSL for data encryptionStandby Masters with ZooKeeper和本地文件系統(tǒng)的單點(diǎn)恢復(fù)
YARN 支持資源調(diào)度器Scheduler,應(yīng)用管理器ApplicationsManager。CapacityScheduler和 FairScheduler在隊(duì)列的范圍內(nèi),資源共享。Kerberos。SSL for data encryption主備切換的HA方式,依賴于zookeeper,但不需要單獨(dú)的zkfc進(jìn)程
Mesos看下方:插件式安全模塊,默認(rèn)Cyrus SASL,SSL for data encryption一主多備,基于zookeeper的leader選舉
Mesos的資源調(diào)度能力描述
粗粒度模式(Coarse-grained Mode):每個(gè)應(yīng)用程序的運(yùn)行環(huán)境由一個(gè)Dirver和若干個(gè)Executor組成,其中,每個(gè)Executor占用若干資源,內(nèi)部可運(yùn)行多個(gè) Task(對應(yīng)多少個(gè)“slot”)。應(yīng)用程序的各個(gè)任務(wù)正式運(yùn)行之前,需要將運(yùn)行環(huán)境中的資源全部申請好,且運(yùn)行過程中要一直占用這些資源,即使不用,***程序運(yùn)行結(jié)束后,回收這些資源。舉個(gè)例子,比如你提交應(yīng)用程序時(shí),指定使用5個(gè)executor運(yùn)行你的應(yīng)用程序,每個(gè)executor占用5GB內(nèi)存和5個(gè)CPU,每個(gè)executor內(nèi)部設(shè)置了5個(gè)slot,則Mesos需要先為executor分配資源并啟動(dòng)它們,之后開始調(diào)度任務(wù)。另外,在程序運(yùn)行過程中,mesos的master和slave并不知道executor內(nèi)部各個(gè)task的運(yùn)行情況,executor直接將任務(wù)狀態(tài)通過內(nèi)部的通信機(jī)制匯報(bào)給Driver,從一定程度上可以認(rèn)為,每個(gè)應(yīng)用程序利用mesos搭建了一個(gè)虛擬集群自己使用。
細(xì)粒度模式(Fine-grained Mode):鑒于粗粒度模式會(huì)造成大量資源浪費(fèi),Spark On Mesos還提供了另外一種調(diào)度模式:細(xì)粒度模式,這種模式類似于現(xiàn)在的云計(jì)算,思想是按需分配。與粗粒度模式一樣,應(yīng)用程序啟動(dòng)時(shí),先會(huì)啟動(dòng) executor,但每個(gè)executor占用資源僅僅是自己運(yùn)行所需的資源,不需要考慮將來要運(yùn)行的任務(wù),之后,mesos會(huì)為每個(gè)executor動(dòng)態(tài)分配資源,每分配一些,便可以運(yùn)行一個(gè)新任務(wù),單個(gè)Task運(yùn)行完之后可以馬上釋放對應(yīng)的資源。每個(gè)Task會(huì)匯報(bào)狀態(tài)給Mesos slave和Mesos Master,便于更加細(xì)粒度管理和容錯(cuò),這種調(diào)度模式類似于MapReduce調(diào)度模式,每個(gè)Task完全獨(dú)立,優(yōu)點(diǎn)是便于資源控制和隔離,但缺點(diǎn)也很明顯,短作業(yè)運(yùn)行延遲大。
到此,關(guān)于“Spark的集群deploy模式有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。