1、SparkContext [經(jīng)常簡稱為 sc]
spark app 的起點(diǎn)和入口耻警,一般用來加載數(shù)據(jù)集,生成第一個(gè) rdd腮恩。
2温兼、定義一個(gè) spark 應(yīng)用程序所需要的三大步驟的邏輯:加載數(shù)據(jù)集,處理數(shù)據(jù)荡含,結(jié)果展示届垫。
- 加載數(shù)據(jù)集
加載數(shù)據(jù)集,這里的數(shù)據(jù)集大概分為兩組:
- 一種是不變的误债,靜態(tài)數(shù)據(jù)集,大多數(shù)場景都是從數(shù)據(jù)庫糟袁,文件系統(tǒng)上面加載進(jìn)來
- 另一種是動(dòng)態(tài)的數(shù)據(jù)集躺盛,一般做 streaming 應(yīng)用的時(shí)候用到槽惫,大多數(shù)場景是通過 socket 來加載數(shù)據(jù)辩撑,復(fù)雜場景可以通過文件系統(tǒng),akka actors合冀,kafka,kinesis 和 一些第三方提供的 streaming api [twitter 等] 來作為數(shù)據(jù)源加載數(shù)據(jù)
- 處理數(shù)據(jù)
處理數(shù)據(jù)峭判,這是重點(diǎn)中的重點(diǎn)林螃,不過不外乎都是從三個(gè)方面來完成這里的數(shù)據(jù)清理,邏輯運(yùn)算等:
- 自定義的一些復(fù)雜處理函數(shù)或者第三方包 [下面我們稱為函數(shù)集]
- 通過 RDD 的 transform疗认,action 和函數(shù)集來完成整個(gè)處理伏钠,計(jì)算流程
- 通過 RDD 提供的 cache,persist缎浇,checkpoint 方法把一些處理流程中的重要處理節(jié)點(diǎn)和常用數(shù)據(jù)緩存和備份打掘,以加速處理,計(jì)算速度
- 結(jié)果展示
結(jié)果展示亡笑,這里一般情況都是使用 RDD 的 collect横朋,take,first晰甚,top 等方法把結(jié)果取出來,更常用的是先把結(jié)果取出來蓖捶,放到一個(gè)數(shù)據(jù)庫或文件系統(tǒng)上扁远,然后再提供給專門展示結(jié)果的另一個(gè) application 使用。
3并闲、有向無環(huán)圖(DGA):
有向無環(huán)圖谷羞,有向即有方向,無環(huán)即不可逆湃缎,其實(shí)更詳細(xì)的說是一個(gè)時(shí)間上的先來后到,即祖先與子孫的關(guān)系宏浩,是不可逆的靠瞎。
4、RDD
關(guān)于RDD的一篇論文翻譯