spark的RDD五大特點

2021-08-16 20:02:30 字數 2348 閱讀 5144

rdd的5大特點

1)有乙個分片列表,就是能被切分,和hadoop一樣,能夠切分的資料才能平行計算。

一組分片(partition),即資料集的基本組成單位,對於rdd來說,每個分片都會被乙個計算任務處理,並決定平行計算的粒度。使用者可以在建立rdd時指定rdd的分片個數,如果沒有指定,那麼就會採用預設值。預設值就是程式所分配到的cpu core的數目。每個分配的儲存是由blockmanager實現的,每個分割槽都會被邏輯對映成blockmanager的乙個block,而這個block會被乙個task負責計算。

2)由乙個函式計算每乙個分片,這裡指的是下面會提到的compute函式。

spark中的rdd的計算是以分片為單位的,每個rdd都會實現compute函式以達到這個目的。compute函式會對迭代器進行復合,不需要儲存每次計算的結果。

3)對其他rdd的依賴列表,依賴還具體分為寬依賴和窄依賴,但並不是所有的rdd都有依賴。

rdd的每次轉換都會生成乙個新的rdd,所以rdd之間就會形成類似於流水線一樣的前後依賴關係。在部分分割槽資料丟失時,spark可以通過這個依賴關係重新計算丟失的分割槽資料,而不是對rdd的所有分割槽進行重新計算。

4)可選:key-value型的rdd是根據雜湊來分割槽的,類似於mapreduce當中的paritioner介面,控制key分到哪個reduce。

乙個partitioner,即rdd的分片函式。當前spark中實現了兩種型別的分片函式,乙個是基於雜湊的hashpartitioner,另外乙個基於範圍的rangepartitioner。只有對於key-value的rdd,才會有partitioner,非key-value的rdd的partitioner的值是none。partitioner函式不但決定了rdd本身的分片數量,也決定了parent rdd shuffle輸出時的分片數量。

5)可選:每一分片的優先計算位置,比如hdfs的block的所在位置應該是優先計算的位置。

乙個列表,儲存訪問每個partition的優先位置(preferred location)。對於乙個hdfs檔案來說,這個列表儲存的就是每個partition所在的塊的位置。按照「移動資料不如移動計算」的理念,spark在進行任務排程的時候,會盡可能地將計算任務分配到其所要處理資料塊的儲存位置。

rdd的特點:

進一步,說:

worker裡有很多excutor,真正完成計算的是excutor,excutor計算都是在記憶體進行計算,

excutor裡面有partitioner,partitioner裡面的資料如果記憶體足夠大的話放到記憶體中,它是一點一點讀的。

rdd是分布式資料集,所說rdd就是這個。

rdd有5個特點:

1.a list of partiotioner有很多個partiotioner(這裡有3個partiotioner),可以明確的說,乙個分割槽在一台機器上,乙個分割槽其實就是放在一台機器的記憶體上,一台機器上可以有多個分割槽。

2.a function for partiotioner乙個函式作用在乙個分割槽上。比如說乙個分割槽有1,2,3 在rdd1.map(_*10),把rdd裡面的每乙個元素取出來乘以10,每個分片都應用這個map的函式。

3.rdd之間有一系列的依賴rdd1.map(_*10).flatmap(..).map(..).reducebykey(...),構建成為dag,這個dag會構造成很多個階段,這些階段叫做stage,rddstage之間會有依賴關係,後面根據前面的依賴關係來構建,如果前面的資料丟了,它會記住前面的依賴,從前面進行重新恢復。每乙個運算元都會產生新的rdd。textfile 與flatmap會產生兩個rdd.

4.分割槽器hash & integer.max % partiotioner 決定資料到哪個分割槽裡面,可選,這個rdd是key-value 的時候才能有

5.最佳位置。資料在哪台機器上,任務就啟在哪個機器上,資料在本地上,不用走網路。不過資料進行最後彙總的時候就要走網路。(hdfs file的block塊)

rdd有5個特點:

1、rdd是spark提供的核心抽象,全稱為resillient distributed dataset,即彈性分布式資料集。

2、rdd在抽象上來說是一種元素集合,包含了資料。它是被分割槽的,分為多個分割槽,每個分割槽分布在集群中的不同節點上,從而讓rdd中的資料可以被並行操作。(分布式資料集)

3、rdd通常通過hadoop上的檔案,即hdfs檔案或者hive表,來進行建立;有時也可以通過應用程式中的集合來建立。

4、rdd最重要的特性就是,提供了容錯性,可以自動從節點失敗中恢復過來。即如果某個節點上的rdd partition,因為節點故障,導致資料丟了,那麼rdd會自動通過自己的資料**重新計算該partition。這一切對使用者是透明的。

5、rdd的資料預設情況下存放在記憶體中的,但是在記憶體資源不足時,spark會自動將rdd資料寫入磁碟。(彈性)

RDD五大特性

1 a list of partitions 一系列的分片 比如說128m一片,類似於hadoop中的split 2 a function for computing each split 每個分片上都有乙個函式去迭代 執行 計算它 3 a list of dependencies on other...

五大特點 ABBA直線導軌的五大特點

官網 abba導軌在機械加工過程應用非常的廣,幾乎所有的加工過程都離不開abba導軌。為什麼abba導軌的應用那麼廣,被那麼多人所接受,與abba導軌的五大特點是分不開的,下面,來和大家談一談這五大特點都有哪些?1.abba導軌定位精度高 翻滾直線導軌的運動憑藉鋼球翻滾實現,導軌副衝突阻力小,動態衝...

雲計算五大特點

1 支援異構基礎資源 雲計算可以構建在不同的基礎平台之上,即可以有效相容各種不同種類的硬體和軟體基礎資源。硬體基礎資源,主要包括網路環境下的三大類裝置,即 計算 伺服器 儲存 儲存裝置 和網路 交換機 路由器等裝置 軟體基礎資源,則包括單機作業系統 中介軟體 資料庫等。2 支援資源動態擴充套件 支援...