Skip to main content
QUICK REVIEW

[論文レビュー] Approximate Stream Analytics in Apache Flink and Apache Spark Streaming.

Do Le Quoc, Ruichuan Chen|arXiv (Cornell University)|Sep 9, 2017
Data Stream Mining Techniques参考文献 12被引用数 8
ひとこと要約

StreamApproxは、Apache FlinkおよびSpark Streamingにおけるストリーム分析の近似処理を実現するオンライン階層付きリザーバワースリーブサンプリングアルゴリズムを導入し、厳密な誤差境界を伴うリアルタイムで効率的な処理を可能にする。ネイティブシステムより1.15×~3×の高速化を達成し、改善されたSparkベースラインより1.1×~2.4×の高速化を実現。10%~80%のサンプリング割合において一貫した精度を維持する。

ABSTRACT

Approximate computing aims for efficient execution of workflows where an approximate output is sufficient instead of the exact output. The idea behind approximate computing is to compute over a representative sample instead of the entire input dataset. Thus, approximate computing - based on the chosen sample size - can make a systematic trade-off between the output accuracy and computation efficiency. Unfortunately, the state-of-the-art systems for approximate computing primarily target batch analytics, where the input data remains unchanged during the course of sampling. Thus, they are not well-suited for stream analytics. This motivated the design of StreamApprox - a stream analytics system for approximate computing. To realize this idea, we designed an online stratified reservoir sampling algorithm to produce approximate output with rigorous error bounds. Importantly, our proposed algorithm is generic and can be applied to two prominent types of stream processing systems: (1) batched stream processing such as Apache Spark Streaming, and (2) pipelined stream processing such as Apache Flink. We evaluated StreamApprox using a set of microbenchmarks and real-world case studies. Our results show that Spark- and Flink-based StreamApprox systems achieve a speedup of $1.15 imes$-$3 imes$ compared to the respective native Spark Streaming and Flink executions, with varying sampling fraction of $80\%$ to $10\%$. Furthermore, we have also implemented an improved baseline in addition to the native execution baseline - a Spark-based approximate computing system leveraging the existing sampling modules in Apache Spark. Compared to the improved baseline, our results show that StreamApprox achieves a speedup $1.1 imes$-$2.4 imes$ while maintaining the same accuracy level.

研究の動機と目的

  • ストリーム分析における近似計算システムのギャップに応えること。従来のアプローチは、静的データセットを前提としたバッチ処理に主に焦点を当てている。
  • パイプライン型(Flink)およびバッチ型(Spark Streaming)の両方のストリーム処理モデルに適した汎用的でオンラインのサンプリングアルゴリズムを設計すること。
  • 近似出力に対して厳密な誤差境界を保証するとともに、ネイティブおよびベースラインの近似システムよりも顕著な性能向上を実現すること。
  • マイクロベンチマークおよび実世界のワークロードを対象にシステムを評価し、動的データ環境におけるスケーラビリティと精度のトレードオフを実証すること。

提案手法

  • 時間経過に伴って代表的なサンプルを維持するオンライン階層付きリザーバワースリーブサンプリングアルゴリズムの設計。
  • 広範な互換性を実現するため、Apache Flink(パイプラインモデル)およびApache Spark Streaming(バッチモデル)へのサンプリングアルゴリズムの適用。
  • ストリーム処理パイプラインへのサンプリングメカニズムの統合により、保証された誤差境界を伴う近似結果の計算を実現。
  • データパーティション全体の分布的特性を保持することで、サンプリング精度を向上させるための階層化の活用。
  • データ到着レートおよびシステム負荷に基づく動的サンプリング調整により、効率性と精度の両立を実現。
  • 性能および精度の向上を比較するため、Sparkのネイティブサンプリングモジュールを組み合わせたハイブリッドベースラインの実装。

実験結果

リサーチクエスチョン

  • RQ1パイプライン型およびバッチ型のストリーム処理フレームワーク(FlinkおよびSpark Streaming)に、オンライン階層付きリザーバワースリーブサンプリングアルゴリズムを効果的に適応できるか?
  • RQ2本手法は、ネイティブストリーム処理および既存の近似計算ベースラインと比較して、性能および精度の点でどのように差をつけるか?
  • RQ3リアルタイムストリーム分析において、サンプリング割合、実行速度、出力精度の間のトレードオフはいかなるものか?
  • RQ4動的データワークロードにおいて、顕著な高速化を達成しつつ、厳密な誤差境界を維持できるか?
  • RQ5多様なマイクロベンチマークおよび実世界のユースケースにおいて、本システムの性能はどのように評価されるか?

主な発見

  • 10%~80%のサンプリング割合を用いた場合、StreamApproxはネイティブApache FlinkおよびSpark Streaming実行より1.15×~3×の高速化を達成した。
  • ネイティブサンプリングモジュールを活用した改善されたSparkベースラインと比較して、StreamApproxは1.1×~2.4×の高速化を実現したが、同一の精度を維持した。
  • オンライン階層付きリザーバワースリーブサンプリングメカニズムにより、厳密な誤差境界が保証され、予測可能な近似品質が確保された。
  • 提案されたアルゴリズムは、パイプライン型(Flink)およびバッチ型(Spark Streaming)の両方のストリーム処理モデルにおいて汎用的かつ効果的であることが示された。
  • マイクロベンチマークおよび実世界の事例研究の評価により、多様なデータワークロードにおいて一貫した性能向上および精度の安定性が確認された。
  • 結果として、誤差が制限された近似ストリーム分析が、生産環境向けストリーム処理システムにおいて実現可能かつ効率的であることが示された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。