Application = Driver+ Executor
Driver部分的代碼:SparkConf+SparkContext
Executor部分的代碼:textFile, flatMap, map
Executor中有線程池,任務(wù)由線程池中的線程執(zhí)行,執(zhí)行后回收
Cluster Manager:獲取資源的外部程序
Spark Application的運(yùn)行不依賴(lài)于Cluster Manager
Worker上不運(yùn)行程序代碼,Worker管理資源使用情況,會(huì)接收Master分配資源的指令,并通過(guò)ExecutorRunner來(lái)啟動(dòng)新的進(jìn)程來(lái)開(kāi)啟Executor,Worker不會(huì)發(fā)機(jī)器資源信息給Master,在Master分配資源之時(shí)已經(jīng)知道了。
Job:包含一些列Task的并行計(jì)算
Action不會(huì)產(chǎn)生RDD
Spark快:調(diào)度、容錯(cuò)
窄依賴(lài)依賴(lài)固定個(gè)數(shù)的,不會(huì)變
Stage內(nèi)部計(jì)算邏輯完全一樣,只是計(jì)算的數(shù)據(jù)不同罷了
一個(gè)Application里面可以有多個(gè)jobs(不同的action),一般一個(gè)action對(duì)應(yīng)一個(gè)job,checkpoint也會(huì)導(dǎo)致job
Spark程序運(yùn)行的兩種模式:Client Cluster,建議使用Client模式
driver頻繁和executor通信,所以要在同一個(gè)網(wǎng)段中
不要用IDE作為Driver,Driver也可能有JavaEE
分配資源由以下內(nèi)容決定:
1、spark-env.sh和spark-default.sh
2、spark-submit提交的參數(shù)
3、程序中spark-conf配置的參數(shù)
TaskRunner繼承Runnable接口
聯(lián)系客服