2017-07-13 8 views
1

以下は、作業しようとしている高レベルの使用例です。Akkaをapache spark streaming&Kafkaで使用しますか?

私たちはKafkaトピックに公開されているストリームデータを持っており、モジュールはストリームとして学生IDを読み込み、各学生の複数のソースから関連データを取得し、各学生の計算を実行し、生徒をカフカの話題にする。

ここで、1つの大きなSparkの仕事を書くこと、またはAkkaを使って各ソースに別々のサービスを提供し、俳優が学生IDの束を並行して作業し、それぞれのソースからデータを取得し、変容と行動、そして最終的に各生徒に関連する計算。

ここでは本当にAkkaを使用する必要がありますか? Sparkは効率的にこれを内部的に処理しますか?

ここで何か考えてみてください。

+0

_ "それは良いです" _は、StackOverflowのトピックをオフにします。あなたの質問を言い換えてください。 –

答えて

1

変換がカフカからのデータを入力として取り込み、カフカに出力を戻す場合は、最も自然な適合がKafka Streamsであるように見えます。私はまずそれを見るだろう。 Kafka Streamsは、パーティショングループを互いに並列に処理するために、各グループ内で順番にメッセージを処理するカフカのデータの分割を利用します。同様に、アクターが互いに並行して動作するが、各アクターは内部的にメッセージを処理します。

ただし、計算が必要な場合など。機械学習や一般的に反復の間にデータの再パーティショニング(スパーク・イン点でシャフリング)を繰り返す何らかの反復的なデータ処理を行うと、カフカ・ストリームはもはやそれほどうまくフィットしなくなるはずです。それから私はスパークかフリンクを考えます。

Akkaは本当に強力で、このような場合とそれ以上の両方で使用できます。しかし、それはKafka Streams、Spark、Flinkよりも低いレベルのライブラリです。つまり、あなたはより多くの力を持っていると同時に、考えるべき多くの考慮すべきことを意味します。 akkaを使用している場合は、akka-streamsに行きます。彼らはakka-stream-kafka(別名reactive-kafka)ライブラリを介してkafkaとの良好な統合性を持っています。

関連する問題