1. 程式人生 > >一些重要的spark術語

一些重要的spark術語

寫在前面的話

目的:不要別人說個啥你都是一臉懵逼狀態,圈子內交流最好用專業術語,不然就會感覺雞同鴨講,我最近就碰到這個問題,首先要做的就是我們自己一定要明確這些術語!

  • 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),處理一小片資料,計算出對應的結果