一些重要的spark術語
阿新 • • 發佈:2018-12-21
寫在前面的話
目的:不要別人說個啥你都是一臉懵逼狀態,圈子內交流最好用專業術語,不然就會感覺雞同鴨講,我最近就碰到這個問題,首先要做的就是我們自己一定要明確這些術語!
- Application
spark應用程式,說白了,就是使用者基於spark api開發的程式,一定是通過一個有main方法的類執行的,比如java開發spark,就是在eclipse中,建立的一個工程 - Application Jar
這個就是把寫好的spark工程,打包成一個jar包,其中包括了所有的第三方jar依賴包,比如java中,就用maven+assembly外掛打包最方便 - Driver Program
說白了,就是執行程式中main方法的程序,這就是driver,也叫driver程序 - Cluster Manager
叢集管理器,就是為每個spark application,在叢集中排程和分配資源的元件,比如Spark Standalone、YARN、Mesos等 - Deploy Mode
- 部署模式,無論是基於哪種叢集管理器,spark作業部署或者執行模式,都分為兩種,client和cluster,client模式下driver執行在提交spark作業的機器上;cluster模式下,執行在spark叢集中
- Worker Node
- 叢集中的工作節點,能夠執行executor程序,執行作業程式碼的節點
- Executor
- 叢集管理器為application分配的程序,執行在worker節點上,負責執行作業的任務,並將資料儲存在記憶體或磁碟中,每個application都有自己的executor
- Job
- 每個spark application,根據你執行了多少次action操作,就會有多少個job
- Stage
- 每個job都會劃分為多個stage(階段),每個stage都會有對應的一批task,分配到executor上去執行
- Task
- driver傳送到executor上執行的計算單元,每個task負責在一個階段(stage),處理一小片資料,計算出對應的結果