pysparkデフォルト設定の 8 ノード Google dataproc クラスタで実行しています。開始から数秒後、30 個のエグゼキュータ コアが実行されていることがわかります (予想どおり)。
>>> sc.defaultParallelism
30
1分後:
>>> sc.defaultParallelism
2
その時点から、すべてのアクションは 2 つのコアのみで実行されます。
>>> rng = sc.parallelize(範囲(1,1000000))
>>> rng.cache()
>>> rng.count()
>>> rng.getNumPartitions()
2
rng.cache()コアがまだ接続されている間に実行すると、コアは接続されたままになり、ジョブが分散されます。
監視アプリ (マスター ノードのポート 4040) を確認すると、executor が削除されていることがわかります。
Executor 1
Removed at 2016/02/25 16:20:14
Reason: Container container_1456414665542_0006_01_000002 exited from explicit termination request."
回避策なしでコアの接続を維持できる設定はありますか?