spark系統架構與節點

spark 採用主從(master/slave)架構構建計算機集羣
其中client爲提交spark程序的節點。其餘爲spark分佈式集羣中的物理節點,可以分爲兩類,集羣管理節點(clustermaster)和從節點(slave)
clustermaster節點:clustermaster是整個集羣的核心,它並不執行實際的計算任務,而是負責管理整個集羣的計算資源(除clustermaster節點外其他物理主機的內存,cpu處理器等物理資源)這些計算資源都由clustermaster節點進行統一管理,並將資源合理地分配給用戶提交的各個應用程序。所有的計算節點都要向clustermaster節點進行註冊,將自身的計算資源交給clustermaster節點進行統一調度。clustermaster節點隨時監控瞭解這些註冊的節點的運行狀況,以便給應用程序提供合理的資源分配。需要注意的是,clustermaster節點是一個邏輯上的概念,當spark採用不同的模式運行時,clustermaster就對應這些模式中相應管理節點。例如,以standalone模式運行時,cluster節點就是運行master服務的節點。以yarn模式運行spark時,clustermaster節點爲yarn中的resourcemanager節點,而以mesos運行spark時,對應的clustermaster節點則爲mesos中的master節點。
slave節點:根據功能不同分爲兩類:任務調度節點(driver)和任務執行節點(worker)區分這兩種節點的方法就是看slave節點運行着那種功能進程。
driver節點:運行spark程序main函數所在的進程。在spark集羣中,driver進程可以運行在提交spark程序的client節點上,也可以是某個worker節點。例如,當運行spark shell時。實際上啓動了一個spark程序,因此,我們的電腦就是driver節點。driver節點作爲整個應用程序邏輯的起點,負責創建sparkcontext,定義一個或多個rdd,同時driver進程還可以看做是整個應用程序的大腦。driver主要負責兩方面的工作:(1)負責將一個應用程序分割爲物理上可執行的任務(task),在spark中。task是物理上可執行的最小單元,一個應用程序可以啓動成百上千的獨立task。(2)對於應用程序所產生的task,driver進程將task任務分配到最合適的worker節點上運行,並協調這些task在worker上完成運行。
worker節點:運行executor進程的節點爲worker節點,spark爲每一應用程序在worker節點上創建一個executor進程,executor進程是實際物理任務的執行者。executor進程負責兩方面的工作:(1)負責執行組成應用程序的獨立task計算任務,並將執行的結果反饋給driver節點,(2)executor進程爲rdd提供內存存儲

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章