99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2018-10-22 閱讀量: 1047
如何理解spark核心-RDD?

Spark核心—RDD( Resilient Distributed Dataset 彈性分布式數(shù)據(jù)集模型)

1.四個(gè)特征

– RDD使用戶能夠顯式將計(jì)算結(jié)果保存在內(nèi)存中,控制數(shù)據(jù)的劃分

– 記錄數(shù)據(jù)的變換和描述,而不是數(shù)據(jù)本身,以保證容錯(cuò)

– 懶操作,延遲計(jì)算,action的時(shí)候才操作

– 瞬時(shí)性,用時(shí)才產(chǎn)生,用完就釋放

2.四種構(gòu)建方法

– 從共享文件系統(tǒng)中獲取,如從HDFS中讀數(shù)據(jù)構(gòu)建RDD

? val a = sc.textFile(“/xxx/yyy/file”)

– 通過(guò)現(xiàn)有RDD轉(zhuǎn)換得到

? val b = a.map(x => (x, 1))

– 定義一個(gè)scala數(shù)組

? val c = sc.parallelize(1 to 10, 1)

– 由一個(gè)已經(jīng)存在的RDD通過(guò)持久化操作生成

? val d = a.persist(), a. saveAsHadoopFile(“/xxx/yyy/zzz”)

3.partition和依賴

– 每個(gè)RDD包含了數(shù)據(jù)分塊/分區(qū)(partition)的集合,每個(gè)partition是不可分割的

– 每個(gè)partition的計(jì)算就是一個(gè)task,task是調(diào)度的基本單位

– 與父RDD的依賴關(guān)系(rddA=>rddB)

寬依賴: B的每個(gè)partition依賴于A的所有partition

? 比如groupByKey、reduceByKey、join……,由A產(chǎn)生B時(shí)會(huì)先對(duì)A做shuffle分桶

窄依賴: B的每個(gè)partition依賴于A的常數(shù)個(gè)partition

? 比如map、filter、union……

4.stage和依賴

– 從后往前,將寬依賴的邊刪掉,連通分量及其所有依賴的RDD,構(gòu)成一個(gè)stage

– 每個(gè)stage內(nèi)部盡可能多地包含一組具有窄依賴關(guān)系的轉(zhuǎn)換,并將它們流水線并行化

5.數(shù)據(jù)局部性原則

– 如果一個(gè)任務(wù)需要的數(shù)據(jù)在某個(gè)節(jié)點(diǎn)的內(nèi)存中,這個(gè)任務(wù)就會(huì)被分配至那個(gè)節(jié)點(diǎn)

– 需要的數(shù)據(jù)在某個(gè)節(jié)點(diǎn)的文件系統(tǒng)中,就分配至那個(gè)節(jié)點(diǎn)

6.容錯(cuò)性原則

– 如果此task失敗,AM會(huì)重新分配task

– 如果task依賴的上層partition數(shù)據(jù)已經(jīng)失效了,會(huì)先將其依賴的partition計(jì)算任務(wù)再重算一遍

? 寬依賴中被依賴partition,可以將數(shù)據(jù)保存HDFS,以便快速重構(gòu)(checkpoint)

? 窄依賴只依賴上層一個(gè)partition,恢復(fù)代價(jià)較少

– 可以指定保存一個(gè)RDD的數(shù)據(jù)至節(jié)點(diǎn)的cache中,如果內(nèi)存不夠,會(huì)LRU釋放一部分,仍有重構(gòu)的可能

0.0000
6
關(guān)注作者
收藏
評(píng)論(0)

發(fā)表評(píng)論

暫無(wú)數(shù)據(jù)
推薦帖子