spark術語

術語定義

Application: Spark Application的概念和Hadoop MapReduce中的類似,指的是用戶編寫的Spark應用程序,包含了一個Driver 功能的代碼和分布在集群中多個節(jié)點上運行的Executor代碼;

Driver: Spark中的Driver即運行上述Application的main()函數并且創(chuàng)建SparkContext,其中創(chuàng)建SparkContext的目的是為了準備Spark應用程序的運行環(huán)境。在Spark中由SparkContext負責和ClusterManager通信,進行資源的申請、任務的分配和監(jiān)控等;當Executor部分運行完畢后,Driver負責將SparkContext關閉。通常用SparkContext代表Drive;

Executor: Application運行在Worker 節(jié)點上的一個進程,該進程負責運行Task,并且負責將數據存在內存或者磁盤上,每個Application都有各自獨立的一批Executor。在Spark on Yarn模式下,其進程名稱為CoarseGrainedExecutorBackend,類似于Hadoop MapReduce中的YarnChild。一個CoarseGrainedExecutorBackend進程有且僅有一個executor對象,它負責將Task包裝成taskRunner,并從線程池中抽取出一個空閑線程運行Task。每個CoarseGrainedExecutorBackend能并行運行Task的數量就取決于分配給它的CPU的個數了;

Cluster Manager:指的是在集群上獲取資源的外部服務,目前有:

Standalone:Spark原生的資源管理,由Master負責資源的分配;

Hadoop Yarn:由YARN中的ResourceManager負責資源的分配;

Worker:集群中任何可以運行Application代碼的節(jié)點,類似于YARN中的NodeManager節(jié)點。在Standalone模式中指的就是通過Slave文件配置的Worker節(jié)點,在Spark on Yarn模式中指的就是NodeManager節(jié)點;

作業(yè)(Job):包含多個Task組成的并行計算,往往由Spark Action催生,一個JOB包含多個RDD及作用于相應RDD上的各種Operation;

階段(Stage):每個Job會被拆分很多組Task,每組任務被稱為Stage,也可稱TaskSet,一個作業(yè)分為多個階段;

任務(Task): 被送到某個Executor上的工作任務;

序列化(Serialization):(來自維基百科)對于同步控制而言,表示強制在同一時間內進行單一存??;在數據存儲與傳送部分表示將一個對象存儲至另一個存儲介質中,當被還原時可被還原成完全相等的對象。相反的過程成為反序列化。其目的如下(也是其特點)
1、以某種存儲形式使自定義對象持久化;
2、將對象從一個地方傳遞到另一個地方。
3、使程序更具維護性。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容