更新時(shí)間:2018年09月11日16時(shí)01分 來(lái)源:傳智播客 瀏覽次數(shù):
3. Spark運(yùn)行基本流程
Spark運(yùn)行基本流程參見(jiàn)下面示意圖:
1) 構(gòu)建Spark Application的運(yùn)行環(huán)境(啟動(dòng)SparkContext),SparkContext向資源管理器(可以是Standalone、Mesos或YARN)注冊(cè)并申請(qǐng)運(yùn)行Executor資源;
2) 資源管理器分配Executor資源并啟動(dòng)Executor,Executor運(yùn)行情況將隨著心跳發(fā)送到資源管理器上;
3) SparkContext構(gòu)建成DAG圖,將DAG圖分解成Stage,并把Taskset發(fā)送給Task Scheduler。Executor向SparkContext申請(qǐng)Task,Task Scheduler將Task發(fā)放給Executor運(yùn)行同時(shí)SparkContext將應(yīng)用程序代碼發(fā)放給Executor。
4) Task在Executor上運(yùn)行,運(yùn)行完畢釋放所有資源。
4. Spark運(yùn)行架構(gòu)特點(diǎn)
Spark運(yùn)行架構(gòu)特點(diǎn):
①每個(gè)Application獲取專(zhuān)屬的executor進(jìn)程,該進(jìn)程在Application期間一直駐留,并以多線程方式運(yùn)行tasks。
?、赟park任務(wù)與資源管理器無(wú)關(guān),只要能夠獲取executor進(jìn)程,并能保持相互通信就可以了。
?、厶峤籗parkContext的Client應(yīng)該靠近Worker節(jié)點(diǎn)(運(yùn)行Executor的節(jié)點(diǎn)),最好是在同一個(gè)Rack里,因?yàn)镾park程序運(yùn)行過(guò)程中SparkContext和Executor之間有大量的信息交換;如果想在遠(yuǎn)程集群中運(yùn)行,最好使用RPC將SparkContext提交給集群,不要遠(yuǎn)離Worker運(yùn)行SparkContext。
?、躎ask采用了數(shù)據(jù)本地性和推測(cè)執(zhí)行的優(yōu)化機(jī)制。
作者:傳智播客云計(jì)算大數(shù)據(jù)培訓(xùn)學(xué)院
首發(fā):http://cloud.itcast.cn
【云計(jì)算大數(shù)據(jù)】Java面試題之?dāng)?shù)據(jù)庫(kù)三范式是什么
2018-01-10云計(jì)算面試題之Request對(duì)象的主要方法
2018-01-05云計(jì)算大數(shù)據(jù):企業(yè)中處理數(shù)據(jù)的兩種主要方式
2018-01-05云計(jì)算大數(shù)據(jù):數(shù)據(jù)倉(cāng)庫(kù)建模
2017-12-19云計(jì)算大數(shù)據(jù):構(gòu)建高性能Web站點(diǎn)
2017-12-19云計(jì)算大數(shù)據(jù):KVM虛擬化技術(shù)實(shí)戰(zhàn)
2017-12-18北京校區(qū)