歡迎來到魔據教育大數據學院,專注大數據工程師培養!
當前位置:首頁 > 學習資料 > 講師博文 > Spark執行機制總覽

Spark執行機制總覽

時間:2017-08-17 18:02:16作者:[!--zuozhe--]

        Spark應用提交后經歷了一系列的轉換,最后成為Task在每個節點上執行。Spark應用轉換(見圖1):RDD的Action算子觸發Job的提交,提交到Spark中的Job生成RDD DAG,由DAGScheduler轉化為Stage DAG,每個Stage中產生相應的Task集合,TaskScheduler將任務分發到Executor執行。每個任務對應相應的一個數據塊,使用用戶定義的函數處理數據塊。

11-1.png

                    圖1.spark應用轉換流程圖
Spark執行的底層實現原理,如圖2所示。

11-2.png

圖2.spark執行底層實現圖
在Spark的底層實現中,通過RDD進行數據的管理,RDD中有一組分布在不同節點的數據塊,當Spark的應用在對這個RDD進行操作時,調度器將包含操作的任務分發到指定的機器上執行,在計算節點通過多線程的方式執行任務。一個操作執行完畢,RDD便轉換為另一個RDD,這樣,用戶的操作依次執行。Spark為了系統的內存不至于快速用完,使用延遲執行的方式執行,即只有操作累計到Action(行動),算子才會觸發整個操作序列的執行,中間結果不會單獨再重新分配內存,而是在同一個數據塊上進行流水線操作。 在集群的程序實現上,有一個重要的分布式數據結構,即彈性分布式數據集(Resilient Distributed Dataset,RDD)。Spark實現了分布式計算和任務處理,并實現了任務的分發、跟蹤、執行等工作,最終聚合結果,完成Spark應用的計算。 對RDD的塊管理通過BlockManger完成,BlockManager將數據抽象為數據塊,在內存或者磁盤進行存儲,如果數據不在本節點,則還可以通過遠端節點復制到本機進行計算。
 
在計算節點的執行器Executor中會創建線程池,這個執行器將需要執行的任務通過線程池并發執行。

更多大數據相關資訊敬請關注魔據教育,為您分享最及時的大數據資訊。
學習大數據敬請關注魔據教育微信二維碼。
魔據教育微信二維碼

【版權與免責聲明】如發現內容存在版權問題,煩請提供相關信息發郵件至[email protected],我們將及時溝通與處理。本站內容除非來源注明魔據教育,否則均為網友轉載,涉及言論、版權與本站無關。

全國咨詢熱線:18501996998,值班手機:18501996998(7*24小時)

在線咨詢:張老師QQ 320169340

企業合作服務專線:010-82340234-821, 院校合作洽談專線:010-82340234

Copyright 2001-2019 魔據教育 - 北京華育興業科技有限公司 版權所有,京ICP備17018991號-2

免費在線咨詢立即咨詢

免費索取技術資料立即索取

大數據技術交流QQ:226594285

電話咨詢010-82340234

119期两码中特免费公开