rdd是唯讀的、分割槽記錄的集合
乙個rdd的生成只有兩種途徑:
rdd具有自動容錯、位置感知和可伸縮性特點
rdd只支援粗粒度轉換,即乙個操作會被應用在rdd的所有資料上
rdd包含
程式設計師還可以從兩個方面控制rdd,即持久化和分割槽。使用者可以請求將rdd快取,這樣執行時將已經計算好的rdd分割槽儲存起來,以加速後期的重用。快取的rdd一般儲存在記憶體中,但如果記憶體不夠,可以寫到磁碟上
rdd還允許使用者根據關鍵字(key)指定分割槽順序,這是乙個可選的功能。目前支援雜湊分割槽和範圍分割槽。分割槽的多少涉及對這個rdd進行平行計算的粒度,因為每乙個分割槽的計算都在乙個單獨的任務上執行通過備份任務的拷貝,rdd還可以處理落後任務(即執行很慢的節點)
與dsm(分布式共享記憶體)相比,rdd有兩個好處:
當然也可以在建立rdd的時候不指定分割槽,這時就採用預設的分割槽數,即程式所分配到的資源的cpu核的個數
rdd優先位置屬性與spark中的排程相關,返回的是此rdd的每個partition所儲存的位置,按照「移動資料不如移動計算」的理念,在spark進行任務排程的時候,盡可能地將任務分配到資料塊所儲存的位置(如果乙個partition對應的資料塊儲存了多份,也會返回多份位址)
在spark中,存在兩種型別的依賴:
窄依賴和寬依賴的區別:
Spark RDD 彈性分布式資料集
rdd是唯讀的 分割槽記錄的集合 乙個rdd的生成只有兩種途徑 rdd具有自動容錯 位置感知和可伸縮性特點 rdd只支援粗粒度轉換,即乙個操作會被應用在rdd的所有資料上 rdd包含 程式設計師還可以從兩個方面控制rdd,即持久化和分割槽。使用者可以請求將rdd快取,這樣執行時將已經計算好的rdd分...
使用SparkRDD實現HBase分布式scan
利用spark rdd的分布式計算,將乙個scan任務按照自定義的範圍切分為小的scan,使用這些rdd實現對scan的並行查詢,提高查詢效率。核心是手動實現rdd的compute方法與getpartitions方法。本文中使用到的關於spark rdd方面的知識主要集中在rdd分割槽計算上,檢視s...
RDD彈性分布式資料集特性總結
rdd彈性分布式資料集 集合分布式的 1 最重要的特性 分割槽 rdd究竟是如何分割槽?從外部載入資料時,比如hdfs,分割槽數與hdfs的block數一致 從內部的單機list中載入資料為rdd,parallelize numpartition 從mysql等非內建支援的資料來源載入資料,分割槽就...