雲計算大資料技術之RDD簡介

2021-12-30 12:34:59 字數 1579 閱讀 9919

rdd:彈性分布式資料集(resilient distributed dataset,簡稱 rdd)。rdd 其實就是分布式的元素集合。----spark最根本的資料抽象。

在 spark 中,對資料的所有操作不外乎建立 rdd、轉化已有 rdd?以及呼叫 rdd 操作進行求值。而在這一切背後,spark 會自動將rdd 中的資料分發到集群上,並將操作並行化執行。

?rdd的五個屬性:

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

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

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

(4)partitioner(分割槽器)作用在k,v格式的rdd。當前spark實現了兩種型別的分片函式,乙個是基於雜湊的hashpartitioner,另外乙個是基於範圍的rangepartitioner。只有對於key-value的rdd,才會有partitioner,非key-value的rdd的partitioner的值是none。partitioner函式不但決定了rdd的分片數量,也決定了parentrdd shuffle輸出時的分片數量。

(5)rdd提供一系列最佳的計算位置(preferred location)。對於乙個hdfs檔案來說,這個列表儲存的就是每個partition所在塊的位置。按照「移動資料不如移動計算」的理念,spark在進行任務排程的時候,盡可能的把計算任務分配到其所要處理資料塊的儲存位置(資料本地化)。

?問題一:什麼是k,v格式的rdd?

如果rdd裡面儲存的資料都是二元組(tuple2)物件,那麼這個rdd我們就叫做k,v格式的rdd。

問題二:**體現rdd的彈性(容錯)?

partition數量,大小沒有限制,體現了rdd的彈性。

rdd之間依賴關係,可以基於上乙個rdd重新計算出rdd。

問題三:**體現rdd的分布式?

rdd是由partition組成,partition是分布在不同節點上的。

簡介 雲計算,大資料,人工智慧

雲計算最初是實現資源管理的靈活性 雲計算不光管資源,也要管應用 大資料擁抱雲計算 資料的收集 資料的傳輸 基於硬碟的分布式佇列 資料的儲存 分布式檔案系統 資料的分析 分布式計算的方法 人工智慧擁抱大資料 推理 知識教授 基於統計的知識自學 事物間的關聯 模擬大腦的工作方式 數學單元模擬神經元 神經...

雲計算與大資料 虛擬化技術

描述 虛擬化一般分為硬體級虛擬化 hardware level virtualization 和作業系統級虛擬化 os level virtualization 硬 件級虛擬化是執行在硬體之上的虛擬化技術,它的管理軟體也就是我們通常說的hypervisor 或者 virtual machine mo...

大資料技術 HBase HBase簡介

什麼是hbase?此外hbase對bigtable的架構設計做了相應增強,主要的features如下 1 可以易於與hadoop mapreduce整合的相關classes 2 實時查詢優化 3 提供rest ful服務閘道器,支援xml,protobuf和二進位制資料編碼選項 4 基於jruby的...