大資料技術學習 彈性分布式資料集RDD

2021-09-07 19:56:53 字數 1249 閱讀 8245

一、rdd定義

rdd(resilient distributed dataset)叫做分布式資料集,是spark中基本的資料抽象,它代表乙個不可變(資料和元資料)、可分割槽、裡面的元素可平行計算的集合。其特點在於自動容錯,位置感知性排程和可伸縮性。

二、rdd的屬性

1、一組分片。即資料集的基本組成單位。對於rdd來說,每個分片都會被乙個計算任務處理,並決定平行計算的粒度。使用者可以在建立rdd時指定rdd的分片個數,如果沒有指定,那麼就會採用預設值。預設值就是程式所分配到的cpu core的數目。

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

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

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

5、乙個列表。儲存訪問每個partition的優先位置(preferred location)。

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

三、rdd型別

1、transformation -> 記錄計算過程(記錄引數,計算方法)

2、action -> 觸發生成job(乙個job對應乙個action運算元)

Spark RDD 彈性分布式資料集

rdd是唯讀的 分割槽記錄的集合 乙個rdd的生成只有兩種途徑 rdd具有自動容錯 位置感知和可伸縮性特點 rdd只支援粗粒度轉換,即乙個操作會被應用在rdd的所有資料上 rdd包含 程式設計師還可以從兩個方面控制rdd,即持久化和分割槽。使用者可以請求將rdd快取,這樣執行時將已經計算好的rdd分...

Spark RDD 彈性分布式資料集

rdd是唯讀的 分割槽記錄的集合 乙個rdd的生成只有兩種途徑 rdd具有自動容錯 位置感知和可伸縮性特點 rdd只支援粗粒度轉換,即乙個操作會被應用在rdd的所有資料上 rdd包含 程式設計師還可以從兩個方面控制rdd,即持久化和分割槽。使用者可以請求將rdd快取,這樣執行時將已經計算好的rdd分...

RDD彈性分布式資料集特性總結

rdd彈性分布式資料集 集合分布式的 1 最重要的特性 分割槽 rdd究竟是如何分割槽?從外部載入資料時,比如hdfs,分割槽數與hdfs的block數一致 從內部的單機list中載入資料為rdd,parallelize numpartition 從mysql等非內建支援的資料來源載入資料,分割槽就...