摘要
在Spark中,有Yarn-Client和Yarn-Cluster兩種模式可以運(yùn)行在Yarn上,通常Yarn-cluster適用于生產(chǎn)環(huán)境,而Yarn-Cluster更適用于交互,調(diào)試模式,以下是它們的區(qū)別
Spark插撥式資源管理
Spark支持Yarn,Mesos,Standalone三種集群部署模式,它們的共同點(diǎn):Master服務(wù)(Yarn ResourceManager,Mesos master,Spark standalone)來決定哪些應(yīng)用可以運(yùn)行以及在哪什么時候運(yùn)行,Slave服務(wù)(Yarn NodeManger)運(yùn)行在每個節(jié)點(diǎn)上,節(jié)點(diǎn)上實(shí)際運(yùn)行著Executor進(jìn)程,此外還監(jiān)控著它們的運(yùn)行狀態(tài)以及資源的消耗
Spark alt="" width="550" height="476" /> Yarn-cluster模式下作業(yè)執(zhí)行流程: 1. 客戶端生成作業(yè)信息提交給ResourceManager(RM) 2. RM在某一個NodeManager(由Yarn決定)啟動container并將Application Master(AM)分配給該NodeManager(NM) 3. NM接收到RM的分配,啟動Application Master并初始化作業(yè),此時這個NM就稱為Driver 4. Application向RM申請資源,分配資源同時通知其他NodeManager啟動相應(yīng)的Executor 5. Executor向NM上的Application Master注冊匯報(bào)并完成相應(yīng)的任務(wù) Yarn-client 在Yarn-client中,Application Master僅僅從Yarn中申請資源給Executor,之后client會跟container通信進(jìn)行作業(yè)的調(diào)度,下圖是Yarn-client模式 Yarn-client模式下作業(yè)執(zhí)行流程: 1. 客戶端生成作業(yè)信息提交給ResourceManager(RM) 2. RM在本地NodeManager啟動container并將Application Master(AM)分配給該NodeManager(NM) 3. NM接收到RM的分配,啟動Application Master并初始化作業(yè),此時這個NM就稱為Driver 4. Application向RM申請資源,分配資源同時通知其他NodeManager啟動相應(yīng)的Executor 5. Executor向本地啟動的Application Master注冊匯報(bào)并完成相應(yīng)的任務(wù) 下表是Spark Standalone與Spark alt="物聯(lián)網(wǎng)" width="511" height="195" />