Spark一些组件的定义
Driver program:
運行應用程序的main函數并創建SparkContext的進程
除了RDD的最終執行所寫的業務邏輯,剩下的都在Driver里生成,Driver端執行action算子才會到開始執行所創建的DAG-RDD圖。
Cluster manager:
用于獲取集群資源外部服務
Master:
進程,負責整個集群的調度、分配、監控等職責
Worker node:
進程,負責存儲RDD的某個或某些Partition,啟動其他進程或線程,對RDD的partition處理和計算
Executor:
進程,運行任務,并將數據保存在內存或磁盤存儲區中
Driver端產生Task進行序列化通過網絡傳輸給Executor,Executor進行反序列化后讓進線程池中執行Task
Job
Spark中每個action對應著一個Job,transformation不是Job。
Task:
線程,對RDD的partition進行并行計算
一個Job被拆分成若干個Stage,每個Stage執行一些計算,產生一些中間結果。它們的目的是最終生成這個Job的計算結果。而每個Stage是一個taskSet,包含若干個task。Task是Spark中最小的工作單元,在一個executor上完成一個特定的事情,Executor的每個core每次只能執行一個task。
Stage:
每個作業被劃分為更小的任務集,稱為相互依賴的階段(類似于map reduce中的map和reduce階段)
Stage個數:1+shuffle依賴的數量(resultStage+shuffleMapStage):反向推導,每進行一次寬依賴(也就是每進行一個shuffle)前面的RDD就被分到一個Stage里。
例:下面進行了兩個寬依賴(兩次shuffle)
總結
以上是生活随笔為你收集整理的Spark一些组件的定义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全球增长最快芯片公司20强排行:19家来
- 下一篇: 周星驰迎60岁生日:回顾经典造型 网友直