0

Apache Sparkの場合 "Spark-submit"コマンドの場合、並列性のレベルを制御する "フラグ"がありますか?spark-submitコマンドには、並列レベルを制御するフラグがありますか?

+2

--num-executors ?? check spark-submit --help – urug

+0

エグゼキュータ、コアの数を制御したり、各パーティション内の何かを実行することもできます(たとえば、パーティション内のdb接続の作成など)。これらはより多くの並列性を達成するのに役立ちます – void

答えて

1

num-executorsを使用してエグゼキュータの数を設定し、次に再生できるコアの数を--executor-coresまたは--total-executor-coresのいずれかを使用して設定できます。コマンドライン引数として、またはspark設定ファイルに渡すことができます。しかし、これはYARNモードでのみ機能します。

しかし、Sparkの実際の並列処理は、データフレーム/ RDDのパーティション数によって制御されます。一般に、RDDを作成するときに、必要なパーティションの量を指定できます。 sc.defaultParallelismを使用して、デフォルトの並列性を確認することもできます。したがって、コアの数よりも少ないパーティションを割り当てると、本質的にgのコアのいくつかが無駄になります。

今、SparkはRDDを取り込み、クラスタ全体に分散し、パーティションで動作するタスク(コードから作成されたクロージャです)を生成します。生成されるタスクの数は、クラスタ内のコア数(または合格したパラメータ)になります。一般的な経験則では、Sparkのタスク起動時間が非常に少ないため、1コアあたり2〜3のタスクを持つことです。

関連する問題