spark 概念
spark 特點(diǎn)
- DAG引擎,減少過(guò)程寫入磁盤開銷
- 內(nèi)存計(jì)算引擎,支持cache機(jī)制,使得中間過(guò)程數(shù)據(jù)可以保留
- 多線程模式,(mapreduce是批處理基于進(jìn)程的,每一次計(jì)算就要開啟一個(gè)jvm;而spark基于基于線程的,減少進(jìn)程啟動(dòng)開銷)
- spark比mapreduce的優(yōu)勢(shì):對(duì)于中間狀態(tài)可以被捕獲娱俺。
RDD(Resilience Distributed Datassets) 彈性分布式數(shù)據(jù)集
1. 操作動(dòng)作
創(chuàng)建(create)
? 來(lái)源于內(nèi)存集合或hdfs上文件轉(zhuǎn)換(transform)
? 從一個(gè)RDD到另一個(gè)RDD控制(control)
? 進(jìn)行RDD持久化,如chache,persist行動(dòng)(action)
? 輸出結(jié)果行為.如保存文件/執(zhí)行reduce操作.
2. RDD特點(diǎn)
- 惰性執(zhí)行(有action才執(zhí)行)
- 應(yīng)用cache后的結(jié)果不會(huì)觸發(fā)RDD.即,當(dāng)存在多個(gè)action是赂毯,如果沒有cache拇砰,則進(jìn)行多次。
程序架構(gòu)
20180722233300.png
driver
負(fù)責(zé)運(yùn)行application,并創(chuàng)建和變比SparkContext.yarn-master模式下,driver為yarn;yarn-client模式下,driver為客戶端.-
cluster manager
集群yarn.分為幾種模式:local, standalone, yarn/mesos,- worker node : 類似于NodeManager
- executer: 執(zhí)行進(jìn)程.用于分配任務(wù)給task,一個(gè)workerNode有多個(gè)executer
- task: 執(zhí)行線程.執(zhí)行RDD任務(wù).
- cache:用于RDD的中間過(guò)程
其他
- spark 環(huán)境執(zhí)行優(yōu)先級(jí):
- spark program:set conf
- spark submit
- spark default conf
- spark的shuffle也是要存在executer上的本地硬盤上相叁。
- 每個(gè)map行為成為一個(gè)job,當(dāng)存在shuffle是spark必須重新分配資源.每一個(gè)階段成為stage