Master クラスのspark-1.6ソースコードを読んだとき、receiveAndReplyメソッドはAkkaを使用していないようです。 [Cf. ここ 。]
なぜAkkaを使わないのですか?そして、彼らはAkkaを何に置き換えましたか?
Spark Akkaから独立させることの背後にある動機は、Akka関連の問題の包括的なタスクである SPARK-529 で詳しく説明されています。
元の説明を引用するには:
SparkはAkkaに依存しているため、ユーザーが異なるバージョンに依存することはできません。過去に、この特定の問題について助けを求める多くのリクエストを受け取りました。たとえば、SparkストリーミングはAkkaメッセージの受信者として使用される場合がありますが、Akkaに依存しているため、アップストリームのAkkaアクターも同じバージョンのAkkaを使用する必要があります。
Akkaの使用は制限されているため(主にRPCとシングルスレッドイベントループの場合)、代替のRPC実装とSparkの一般的なイベントループに置き換えることができます。
ご覧のとおり、主な理由は単純です。ユーザーが独自のアプリケーションを作成する際の柔軟性を高めるためです。
また、Sparkとにかく広く使用されていないAkkaのような複雑な依存関係を削除します。これは、メンテナンスのコストが低いことを意味します。