Sparkストリーミング
Apache Spark ストリーミングは、Apache Spark の前世代ストリーミングエンジンです。Spark ストリーミングの今後の更新はなく、レガシープロジェクトとなります。Apache Spark には、「構造化ストリーミング」と呼ばれる新しくて使いやすいストリーミングエンジンがあります。ストリーミングアプリケーションとパイプラインには、Spark 構造化ストリーミングをご使用ください。構造化ストリーミングの詳細はこちらでご覧いただけます。
Sparkストリーミングとは
Apache Sparkストリーミングとは、スケーラブルで耐障害性に優れた特性を持つストリーミング処理システムです。バッチ処理とストリーミング処理のワークロードをネイティブにサポートしています。Spark ストリーミングは、コアのSpark APIを拡張したもので、データエンジニアやデータサイエンティストは、KafkaやFlume、Amazon Kinesisなどの複数のソースからリアルタイムデータを処理することが可能です。処理されたデータは、ファイルシステムやデータベース、ライブダッシュボードに出力することができます。その鍵となる抽象化は、小さなバッチに分割されたデータのストリームを表現する「離散ストリーム(DStream)」です。DStreamは、Sparkのコアなデータ抽象化機能であるRDD を基盤に構築されています。これにより、SparkストリーミングはMLlibやSpark SQLのような他のSparkコンポーネントとシームレスに統合することが可能となります。Sparkストリーミングは、ストリーミングのためだけに設計された処理エンジンを備えているシステムや、Sparkストリーミングと類似したバッチとストリーミングAPIを持ちながら、内部的には異なるエンジンにコンパイルされるシステムとは異なります。Sparkの単一実行エンジンと、バッチとストリーミングのための統合プログラミングモデルは、従来のストリーミングシステムにはないメリットをもたらします。
Spark ストリーミングの4つの特徴
- 障害時にお ける迅速なリカバリ
- 優れた負荷分散とリソース使用率
- ストリーミングデータと静的データセット、対話型クエリの統合
- 高度な処理ライブラリ(SQL、機械学習、グラフ処理)とのネイティブ統合
このような異なるデータ処理機能の統合は、Sparkストリーミングを急速に普及させる大きな理由になりました。この統合により、開発者は単一のフレームワークを使用して、容易にあらゆる処理ニーズに対応できます。