2016-05-24 5 views
0

計算はほぼリアルタイムで(最大100msで)実行する必要があり、容易に並列化できる適度に複雑な計算が必要です。私たちが検討しているオプションの1つは、Apache Hadoop YARNとは別にバッチモードでsparkを使用することです。私はスパークするバッチジョブを送信することは、しかし、巨大なオーバーヘッドがあることを読んだ。これらは、このオーバーヘッドを削減/排除する方法ですか?スパークバッチジョブ作成のオーバーヘッドを削減する方法

答えて

0

スパークは、利用可能なリソース、つまりメモリとコアを利用しています。 Sparkはデータの局所性の概念を使用します。

データとその上で動作するコードがまとめて計算よりも高速になる傾向がある場合。しかし、コードとデータが分離されていれば、一方は他方に移動する必要があります。通常、コードサイズがデータよりもはるかに小さいため、シリアライズされたコードをデータのチャンクよりも先に発送するほうが速くなります。 リソースが不足している場合は、必ずスケジューリングと処理時間が掛かります。スパークは、データの局所性というこの一般的な原則の周りでスケジューリングを構築します。

スパークはすべてのタスクを最高の地域レベルでスケジュールすることを推奨しますが、これは必ずしも可能ではありません。 チェックhttps://spark.apache.org/docs/1.2.0/tuning.html#data-locality

関連する問題