私はSparkの初心者ですが、私はSparkの動作について少し混乱しています。Sparkは並列処理が不十分なタスクを実行します
val fichero = sc.textFile(file, numPartitions)
私は12人の労働者と216を持つクラスタの下で開発しています:
私はこの方法で私は、このようにユーザーが指定したパーティションの数とRDDを作成し、Scalaではアルゴリズムを開発しています使用可能なコア数(ノードあたり18個)。私は、アプリケーションをデバッグするためにスパークUIに行くときしかし、私は与えられた舞台のために次のイベントのタイムラインを見た:画像の品質について
申し訳ありませんが、私は低ズームにたくさんあります。この実行には、128のパーティションがあります。しかし、画像で見られるように、RDD全体は12人のエグゼキュータのうち2人でしか実行されないため、いくつかのタスクは順番に実行され、その動作を望んでいません。
ここで問題が起こっていますか?各タスクを並行して実行するためにすべてのワーカーを使用できますか?私はオプション見てきました:
spark.default.parallelism
をしかし使用するパーティションの数を選択するとき、このオプションが変更されます。 spark-submitスクリプトのdefaultsパラメータを使ってアプリケーションを起動します。
でパーティションの実際の数を確認することができますか? – FaigB
spark submitでオプション '--num-executors'と' --executor-cores'を試しましたか? –
spark-submitで--num-executorsを12に設定しても機能しません。 2人のエグゼキュータを使っています。私はスタンドアロンモードでスパークを使用しています。 –