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."
回避策なしでコアの接続を維持できる設定はありますか?