2016-09-26 6 views
0

Yarnで管理されているクラスタで実行するSparkジョブがあります(動的割り当てが有効)。私の仕事は、社内のいくつかのREST APIを打つことでデータを処理する必要があります(これはオプションではありません)。 APIチームは、多数の同時リクエストに対して自動スケーリングを行うことができますが、スケールアップには時間がかかることを教えてくれました。だから彼らはSparkの仕事によって発生する要求/秒の増加率を制限することを要求しました。Spark/Yarn:一定期間にわたってエグゼキュータの数をゆっくりと増やす

Sparkにエグゼキュータの数を事前定義された期間にわたって均等に「ランプアップ」させる簡単な方法はありますか?

答えて

1

From the Spark Docsの場合、spark.dynamicAllocation.schedulerBacklogTimeoutspark.dynamicAllocation.sustainedSchedulerBacklogTimeoutで新しいエグゼキュータが要求される速度を遅くすることができます。しかし、これはちょっとしたハックのような感じです。

+0

これは、並列処理の最終的な上限のための 'spark.dynamicAllocation.maxExecutors'と組み合わせて、このトリックを行いました。しかし、あなたはそれがちょっとハッキーだと言って、各タイムアウトの後に追加されるエグゼキュータの数を制御することはできません。これは、以前に要求されたものの倍になります。 –

関連する問題