1. 程式人生 > >spark on yarn作業執行流程

spark on yarn作業執行流程

Spark是一個分散式資料快速分析專案。它的核心技術是彈性分散式資料集(Resilient Distributed Datasets),提供了比MapReduce豐富的模型,可以快速在記憶體中對資料集進行多次迭代,來支援複雜的資料探勘演算法和圖形計算演算法。

Spark 的計算排程方式,從Mesos到Standalone,即自建Spark計算叢集。雖然Standalone方式效能與穩定性都得到了提升,但自建叢集畢 竟資源較少,並需要從雲梯叢集複製資料,不能滿足資料探勘與計算團隊業務需求。而Spark on YARN能讓Spark計算模型在雲梯YARN叢集上執行,直接讀取雲梯上的資料,並充分享受雲梯YARN叢集豐富的計算資源。

Spark on YARN功能理論上從Spark 0.6.0版本開始支援,但實際上還遠未成熟,經過資料探勘與計算團隊長時間的壓力測試,修復了一些相對關鍵的Bug,保證Spark on YARN的穩定性和正確性。

圖3展示了Spark on YARN的作業執行機制。


圖3 Spark on YARN框架

基於YARN的Spark作業首先由客戶端生成作業資訊,提交給ResourceManager,ResourceManager在某一 NodeManager彙報時把AppMaster分配給NodeManager,NodeManager啟動 SparkAppMaster,SparkAppMaster啟動後初始化作業,然後向ResourceManager申請資源,申請到相應資源後 SparkAppMaster通過RPC讓NodeManager啟動相應的SparkExecutor,SparkExecutor向 SparkAppMaster彙報並完成相應的任務。此外,SparkClient會通過AppMaster獲取作業執行狀態。

目前,資料探勘與計算團隊通過Spark on YARN已實現MLR、PageRank和JMeans演算法,其中MLR已作為生產作業執行。