1. ホーム
  2. apache-spark

[解決済み] Apache SparkとAkkaの比較【終了しました

2022-02-09 15:16:21

質問

Apache SparkとAKKAの違いを教えてください。どちらも分散並列計算をプログラムするためのフレームワークであることは知っていますが、両者の関連性や違いがわかりません。

さらに、それぞれに適したユースケースを知りたいです。

解決方法は?

Apache Sparkは、実はAkkaをベースに構築されています。

Akka は、Scala または Java で、反応性、分散性、並列性、回復力のある並行アプリケーションを作成するための汎用フレームワークです。Akka は Actor モデルを使ってスレッド関連のコードをすべて隠し、スケーラブルで耐障害性の高いシステムを簡単に実装できる、実にシンプルで役に立つインターフェイスを提供します。Akka の良い例としては、携帯電話から送られてくるデータを消費・処理し、ある種のストレージに送るようなリアルタイム・アプリケーションが挙げられます。

Apache Spark(Spark Streamingではない)は、一般化されたMap-Reduceアルゴリズムを用いてバッチデータを処理するフレームワークである。Apache Sparkの良い例は、データのより良い洞察を得るために、保存されたデータのいくつかのメトリックを計算することです。データはオンデマンドで読み込まれ、処理されます。

Apache Spark Streamingは、ほぼリアルタイムの小バッチデータに対して、すでに保存されているデータと同じようなアクションや関数を実行することが可能です。

2016年4月更新

Apache Spark 1.6.0 から、Apache Spark はノード間の通信を Akka に依存しないようになりました。コメントをくれた @EugeneMi に感謝します。