1四、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),處理一小片數據,計算出對應的結果
 
deploy mode,分爲兩種
一、client模式:主要用於測試
二、cluster模式:主要用於生產環境
不管是standalone、yarn,都是分爲這兩種模式:
一、standalone client、standalone cluster
二、yarn client、yarn cluster
 
client模式,區別就在於driver啓動的位置,你在哪臺機器上提交spark application,在那臺機器上,就會啓動driver進程,直接會去啓動一個jvm進程,開始執行你的main類
cluster模式,spark application或者叫作spark做業,提交到cluster manager,cluster manager負責在集羣中某個節點上,啓動driver進程
 
cluster mode:集羣模式,經常使用的有兩種,standalone和yarn:
一、standalone模式,由Master進程和Worker進程,組成的集羣
二、yarn模式,由ResourceManager進程和NodeManager進程,組成的集羣
 
standalone模式下,基於spark的Master進程和Worker進程組成的集羣,Worker進程所在節點,也就是Worker節點
yarn模式下,yarn的nodemanager進程所在的節點,就是worker節點
 
 
job,做業,一個spark application / spark做業,可能會被分解爲一個或者多個job,分解的標準,就是說你的spark代碼中,用了幾回action操做,就會有幾個job
 
stage,階段,每一個job可能會被分解爲一個或者多個stage,分解的標準,你在job的代碼中,執行了幾回shuffle操做(reduceByKey、groupByKey、countByKey),執行一次shuffle操做,job中就會有兩個stage,若是一次shuffle都沒執行,那就只有一個stage
 
task,任務,最小的計算單元,每一個stage會對應一批task,具體的數量,是spark自動計算,根據底層的文件(hdfs、hive、本地文件)大小來劃分,默認一個hdfs block對應一個task;也能夠本身手動經過spark.default.parallelism參數來設置;每一個task就處理一小片數據
相關文章
相關標籤/搜索