3.spark運行模式
本地模式
local、local[N]或local[N,maxRetries]。主要用於代碼調試和跟蹤。不具備容錯能力,不適用於生產環境。
本地模式只有Driver,沒有Master和Worker。執行任務的Executor與Driver在同一個JVM進程中。
本地集群模式
local-cluster[N,cores,memory]。也主要用於代碼調試和測試,是源碼學習常用的模式。不具備容錯能力,不能用於生產環境。
Driver、Master與Worker運行在同一個JVM進程中。每個Worker可啟動多個Executor,每個Executor都是一個JVM進程。
Standalone模式
spark://。具備容錯能力並且支持分布式部署運行。
Driver在集群之外,可以是任意的客戶端程序。Master部署於單獨的進程,甚至在單獨的機器上,可以有多個,但只能有一個處於激活狀態。Worker部署於單獨的進程,推薦在單獨的機器上部署。
YARN模式
yarn模式是將任務管理與資源調度功能交給YARN框架進行處理的模式。分為yarn-client和yarn-cluster兩種模式。
yarn-client適用於交互、調試,希望立即看到應用的輸出;yarn-cluster適用於生產環境。
yarn-cluster模式下,driver運行在AM(ApplicationMaster)中,負責向YARN申請資源並監控作業的運行狀況。當用戶提交完作業後,就可以關閉client,作業會繼續在YARN上運行。
yarn-cluster模式不適合運行交互類型的作業。而在yarn-client模式下,AM(ApplicationMaster)僅僅向YARN請求executor,client會和請求的executor通信來調度工作,client不能離開。
Mesos模式
運行模式類似於YARN,分為client和cluster兩種模式。資源調度器分為粗粒度(默認)和細粒度(不推薦)。
3.spark運行模式