差spark.sql.shuffle.partitionsとspark.default.parallelism

スパークタスク並列処理の設定では、私たちはしばしば遭遇する二つの引数、spark.sql.shuffle.partitionsとspark.default.parallelism、どのような違い最後に、これら2つのパラメータがありますか?

まず、私たちはそれらの定義を見てみましょう

プロパティ名 デフォルト 意味
spark.sql.shuffle.partitions 200 結合や集計のためにシャッフルデータを使用するパーティションの数を設定します。
spark.default.parallelism

reduceByKeyと参加、親RDD内のパーティションの最大数のような分散シャッフル操作について。

ない親RDDSと並列化などの操作のためには、クラスタ・マネージャに依存する:
-ローカルモード:ローカルマシン上のコアの数
- Mesos微粒モード:8
-その他:すべてのエグゼキュータ・ノード又は2にコアの総数、方大きな

デフォルトの参加などの変換によって返さRDDSのパーティション数、reduceByKey、およびユーザーが設定していない時に並列化します。

彼らの定義は非常に似ているようだが、実際のテストでは、

 

スパーク。デフォルト.parallelismはRDD、無効なスパークSQLに対処する役割を果たします。
spark.sql.shuffle.partitionsは、専用のスパークSQLに設定されています

私たちは次のように、--confすることにより、これらの2つの設定の値を変更するためにジョブを送信することができます:

スパーク提出--conf spark.sql.shuffle.partitions = 20 --conf火花を。デフォルト .parallelism = 20

 

おすすめ

転載: www.cnblogs.com/itboys/p/10960614.html