次のコードでアプリケーションを実行しています。なぜ私は3つ持っているにもかかわらず1つのエグゼキュータが使用されている理解していません。私は範囲を増やそうとすると、私の仕事はタスクマネージャがexecutorを失う原因で失敗します。 要約では、シャッフル書き込みの値がわかりますが、シャッフル読み取りは0です(すべてのデータが1つのノードにあり、ジョブを完了するためにシャッフル読み取りが発生しない可能性があります)。Sparkアプリケーションは1つのエグゼキュータのみを使用します
val rdd: RDD[(Int, Int)] = sc.parallelize((1 to 10000000).map(k => (k -> 1)).toSeq)
val rdd2= rdd.sortByKeyWithPartition(partitioner = partitioner)
val sorted = rdd2.map((_._1))
val count_sorted = sorted.collect()
編集:エグゼキュータとドライバのメモリとコアが増えました。私はまた、エグゼクティブの人数を4人から1人に変更しました。これは助けになったようです。私は今、各ノードでシャッフル読み取り/書き込みを参照してください。
クラスタモード、スタンドアロンモードで実行していますか?ローカルで実行していますかクラスタのどこかで実行していますか? – Metropolis
私はクラスタモードで動作しています。 – user1745995