Spark RDD使用原則

2021-07-12 01:51:49 字數 768 閱讀 3026

如今隨著資料量的不斷增加,hadoop已經難以滿足處理需求,逐漸發展起來的spark基於記憶體的平行計算已經得到了廣泛的應用。

spark博大精深,編寫起來比hadoop方便很多,簡單的幾行**就可以實現hadoop複雜的**,簡單方便!著名的例子就是單詞統計。

對於spark效能的調優部分可以檢視美團點評團隊寫的文章

寫的很棒。

spark使用需要注意的幾個原則:

1、同乙個份資料只需要建立乙個rdd,不要建立多個rdd,避免浪費開銷;

2、對於多次使用的rdd將其持久化到快取,持久化的時候盡量使用序列化的持久化級別(memory_only_ser,memory_and_disk_ser)

3、避免使用多餘的rdd,盡可能的復用同乙個rdd;

4、避免使用shuffle操作,避免使用reducebykey、join、distinct、repartition等會進行shuffle的運算元,盡量使用map類的非shuffle運算元。

5、使用高效能的運算元:

使用reducebykey/aggregatebykey而不是用groupbykey;

使用filter之後一般需要進行coalesce對rdd的分割槽進行修改;

當需要對rdd進行重分割槽並排序的時候,盡量使用repartitionandsortwithinpartitions,在充分區的時候並進行排序操作,提高處理速度。

6、合理使用廣播變數,而不使用join進行操作

7、使用kryo進行spark的序列化操作。

spark RDD程式設計

rdd就是乙個不可變的分布式物件集合。建立rdd 1 讀取乙個外部資料集 sparkcontext.textfile 2 在驅動器程式中對乙個集合進行並行化。rdd 操 作 1 轉 化 操 作 transformation 會由乙個 rdd 生成乙個新的 rdd。2 行 動 操 作 action 會...

使用SparkRDD實現HBase分布式scan

利用spark rdd的分布式計算,將乙個scan任務按照自定義的範圍切分為小的scan,使用這些rdd實現對scan的並行查詢,提高查詢效率。核心是手動實現rdd的compute方法與getpartitions方法。本文中使用到的關於spark rdd方面的知識主要集中在rdd分割槽計算上,檢視s...

Spark RDD 程式設計例項

spark 最核心的概念就是rdd 彈性分布式資料集。rdd 是spark 運算元據的一種抽象,本質是分布式資料集合。這種集合被分為多個分割槽,這些分割槽執行在集群的不同節點上。我們在spark的shell 上執行的命令,會在每個分割槽上執行,最後將執行結果彙總起來就得到我們需要的結果。根據是否需要...