日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

谈谈spark.sql.shuffle.partitions和 spark.default.parallelism 的区别及spark并行度的理解

發布時間:2024/1/17 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 谈谈spark.sql.shuffle.partitions和 spark.default.parallelism 的区别及spark并行度的理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

談談spark.sql.shuffle.partitions和 spark.default.parallelism 的區別及spark并行度的理解

  • spark.sql.shuffle.partitions和 spark.default.parallelism 的區別
  • spark并行度的理解
  • 如何設置spark.sql.shuffle.partitions和spark.default.parallelism的值

spark.sql.shuffle.partitions和 spark.default.parallelism 的區別

首先兩者最直觀的區別:
?spark.default.parallelism只有在處理RDD時有效.
?spark.sql.shuffle.partitions則是只對SparkSQL有效.
看一下官網給出的兩者定義:

以我的四級水準亂翻譯一下:
?spark.sql.shuffle.partitions: 設置的是?RDD1做shuffle處理后生成的結果RDD2的分區數.
??默認值: 200
?spark.default.parallelism: 設置的是?RDD1做shuffle處理/并行處理(窄依賴算子)后生成的結果RDD2的分區數
??默認值:
???對于分布式的shuffle算子, 默認值使用了結果RDD2所依賴的所有父RDD中分區數最大的, 作為自己的分區數.
???對于并行處理算子(窄依賴的), 有父依賴的, 結果RDD分區數=父RDD分區數, 沒有父依賴的看集群配置:
????Local mode:給定的core個數
????Mesos fine grained mode: 8
????Others: max(RDD分區數為總core數, 2)

spark并行度的理解

?并行度其實就是指的是spark作業中, 各個stage的taskset中的task的數量, 代表了spark作業中各個階段的并行度, 而taskset中的task數量 = task任務的父RDD中分區數

如何設置spark.sql.shuffle.partitions和spark.default.parallelism的值

?官網建議: 設置為當前spark job的總core數量的2~3倍. 理由如下:
?背景: spark作業是 1 core 1 task的
?假設我們給當前Spark job 設置總Core數為 100, 那么依據1 core 1 task, 當前spark集群中最多并行運行100task任務, 那么通過設置上述兩個參數為100, 使得我們結果RDD的分區數為100, 一個分區 1task 1core, 完美! 但是實際生產中會有這樣的情況, 100個task中有些task的處理速度快, 有些處理慢, 假設有20個task很快就處理完畢了, 此時就會出現 我們集群中有20個core處理閑置狀態, 不符合spark官網所說的最大化壓榨集群能力.
?而如果我們設置上述參數值為199, 此時的現象: 雖然集群能并行處理199個task, 奈何總core只有100, 所以會出現有99個task處于等待處理的情況. 處理較快的那20task閑置下來的20個core就可以接著運行99個中的20個task, 這樣就最大化spark集群的計算能力

總結

以上是生活随笔為你收集整理的谈谈spark.sql.shuffle.partitions和 spark.default.parallelism 的区别及spark并行度的理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。