深入探究Spark -- Cluster Manger部署(最常用为YARN实现Task Scheduler)
生活随笔
收集整理的這篇文章主要介紹了
深入探究Spark -- Cluster Manger部署(最常用为YARN实现Task Scheduler)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
部署方式有:Standalone(Spark的Deploy模塊)、Mesos、YARN、EC2、Local SparkContext創(chuàng)建時(shí),通過(guò)傳入的Master URL不同,創(chuàng)建不同的SchedulerBackend和TaskScheduler,在spark.SparkContext#createTaskSchuster實(shí)現(xiàn) Master URL: local:以一個(gè)工作線程運(yùn)行計(jì)算任務(wù),不重新計(jì)算失敗的計(jì)算任務(wù) local[N]/[*]:N個(gè)線程,或是啟動(dòng)與CPU core相等數(shù)量的線程,也是不會(huì)重新計(jì)算失敗 local[threads, maxFailures]:設(shè)置線程數(shù)與最大的失敗重試數(shù) local-cluster[numSlaves, coresPerSlave, memoryPerSlave]:本機(jī)運(yùn)行Master和Worker,三個(gè)參數(shù)分別設(shè)置worker的數(shù)量、core數(shù)、內(nèi)存 前三種方式,SchedulerBackend的實(shí)現(xiàn)是scheduler.local.LocalBackend,TaskScheduler的實(shí)現(xiàn)是scheduler.TaskSchedulerImpl,它也有LocalActor,通過(guò)這個(gè)與Executor 第四種為偽分布式,和Standalone類似,只不過(guò)都運(yùn)行在同一個(gè)機(jī)器。SB的實(shí)現(xiàn)是scheduler.cluster.SparkDeploy-SchedulerBackend,TS的實(shí)現(xiàn)是scheduler.Task-SchedulerImpl Worker接到Master的LaunchExecutor信息后,創(chuàng)建實(shí)例ExecutorRunner,啟動(dòng)一個(gè)新的進(jìn)程,它的實(shí)現(xiàn)是spark.executor.Coarse-GrainedExecutorBackend。它不在Worker進(jìn)程內(nèi) Local-cluster可以啟動(dòng)多個(gè)Worker Mesos:采用Master/Slave架構(gòu),主要由Master、Slave、Framework、Executor組成,通過(guò)ZooKeeper實(shí)現(xiàn)Master高可用 Mesos資源調(diào)度分為粗粒度與細(xì)粒度調(diào)度 粗粒度就是每個(gè)Executor獲得資源就長(zhǎng)期持有,直到應(yīng)用程序退出才釋放。優(yōu)點(diǎn)是減少資源調(diào)度的開(kāi)銷(xiāo),缺點(diǎn)就是資源被長(zhǎng)期占有,會(huì)造成資源浪費(fèi) 細(xì)粒度就是根據(jù)任務(wù)實(shí)際動(dòng)態(tài)申請(qǐng),避免了資源浪費(fèi),但同時(shí)調(diào)度的時(shí)間開(kāi)銷(xiāo)更大 通過(guò)spark.mesos.coarse來(lái)設(shè)置是粗還是細(xì) YARN:重點(diǎn)關(guān)注一下 YARN包括ResourceManager負(fù)責(zé)全局管理所有應(yīng)用的計(jì)算資源分配,每一臺(tái)機(jī)器的NodeManager管理應(yīng)用在這臺(tái)機(jī)器上的進(jìn)程并組織計(jì)算 ApplicationMaster負(fù)責(zé)調(diào)度和協(xié)調(diào),結(jié)合從RM獲得的資源和NM協(xié)同工作,每一個(gè)應(yīng)用對(duì)應(yīng)的AM的職責(zé)有向調(diào)度器索取、運(yùn)行任務(wù)、跟蹤與監(jiān)控狀態(tài)和進(jìn)程、處理任務(wù)失敗 RM不對(duì)應(yīng)用進(jìn)行監(jiān)控和跟蹤,是基于應(yīng)用程序的純粹調(diào)度器,把資源分給多個(gè)隊(duì)列和應(yīng)用 NM是每臺(tái)機(jī)器框架的代理,是執(zhí)行應(yīng)用程序的容器,監(jiān)控應(yīng)用程序的資源使用并向調(diào)度器匯報(bào) 過(guò)程:Client提交Job后,AM向RM請(qǐng)求資源,獲得后AM在NM上啟動(dòng)Container,運(yùn)行計(jì)算任務(wù),并監(jiān)控任務(wù)(一個(gè)應(yīng)用對(duì)應(yīng)一個(gè)AM,而一個(gè)AM對(duì)應(yīng)管理多個(gè)NM) YARN的Cluster模式: 通過(guò)YARN調(diào)度Spark Application所需資源。Application通過(guò)YARN Client提交到RM,RM在一個(gè)工作節(jié)點(diǎn)啟動(dòng)AM(注冊(cè)為YARN ApplicationMaster),開(kāi)始應(yīng)用的提交(spark.deploy.yarn.ApplicationMaster) TaskScheduler的實(shí)現(xiàn)是spark.scheduler.cluster.YarnClusterScheduler,它完成了AM的初始化。AM通過(guò)RM和NM的接口啟動(dòng)若干個(gè)容器作為spark.executor.CoarseGrainedExecutorBackend,最終啟動(dòng)Executor YARN的Client模式: 與Cluster模式區(qū)別在于提交Application的SparkContext在本地,適合Application需要與本地交互的場(chǎng)景;Cluster模式是計(jì)算的全部節(jié)點(diǎn)都在YARN節(jié)點(diǎn)上進(jìn)行。 SparkContext創(chuàng)建spark.scheduler.cluster.YarnClient-ClusterScheduler和spark.scheduler.cluster.YarnClientSchedulerBackend,分別是兩個(gè)模塊的實(shí)現(xiàn)。其中SchedulerBackend可以和ExecutorBackend通過(guò)AKKA通信,并向RM提交Application,AM負(fù)責(zé)在多個(gè)節(jié)點(diǎn)上啟動(dòng)Executor Standalone: Master/Slave架構(gòu),Master負(fù)責(zé)整個(gè)集群的資源調(diào)度和Application管理,Slave(Worker)接收Master資源調(diào)度命令后啟動(dòng)Executor,并最終完成計(jì)算任務(wù)。 Client負(fù)責(zé)Application的創(chuàng)建和向Master注冊(cè),并接收Executor的狀態(tài)更新和計(jì)算結(jié)果。 Master、Worker、Client都是通過(guò)AKKA通信,Master和Worker都是一個(gè)Actor Master:接收Worker注冊(cè)并管理所有Worker,接收Client提交Application,并提交給Worker Worker:向Master注冊(cè)自己,根據(jù)Master發(fā)送的Application配置進(jìn)程環(huán)境,并啟動(dòng)StandaloneExecutorBackend Client:向Master注冊(cè)并監(jiān)控Application。創(chuàng)建SparkContext時(shí)生成SparkDeploySchedulerBackend,就會(huì)向Master發(fā)送請(qǐng)求了 Standalone模式是通過(guò)Spark的Deploy模塊就能實(shí)現(xiàn),部署簡(jiǎn)單,有利于推廣Spark 得到計(jì)算資源Executor,Task就到達(dá)了真正計(jì)算的步驟。
轉(zhuǎn)載于:https://www.cnblogs.com/kinghey-java-ljx/p/8522573.html
總結(jié)
以上是生活随笔為你收集整理的深入探究Spark -- Cluster Manger部署(最常用为YARN实现Task Scheduler)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 建行黑金卡有什么待遇?看完你就清楚了!
- 下一篇: Mac 下查看网络端口占用情况