0

私たちはphpに巨大な既存のアプリケーションを持っています

  1. ログファイルを受け入れる
  2. すべてのデータベース、メモリ内ストア リソースを初期化します
  3. すべての行を処理します
  4. 出力ファイルのセットを作成します

上記の処理は、入力ファイルごとに行われます。入力ファイルは、kafka コンシューマーによって書き込まれます。すべてのコードをJavaに移植しないことで、このアプリケーションをスパークストリーミングに適合させることは可能ですか? たとえば、次の方法で

  1. kafka トピックからメッセージを取得する
  2. このメッセージを Spark Streaming に渡します
  3. Spark ストリーミングは何らかの方法でレガシー アプリとやり取りし、出力を生成します
  4. スパークはその後、出力をkafkaに再度書き込みます

何を言ってもレベルが高すぎる。Javaで既存のアプリを再コーディングしないことでこれを行う可能性があるかどうかを知りたいだけですか? そして、誰かがこれをどのように行うことができるかを大まかに教えてもらえますか?

4

2 に答える 2

0

この場合、Storm は Thrift による非 jvm 言語の統合を提供するため、優れた選択肢であると思います。また、PHP Thrift クライアントがあることも確かです。

したがって、基本的には、PHP で記述された ShellSpout と ShellBolt を見つけて (これは、アプリケーションで Storm とやり取りするために必要な統合部分です)、Kafka を消費して各行を処理する独自のスパウトとボルトを記述します。

必要に応じてこのライブラリを使用できます: https://github.com/Lazyshot/storm-php

次に、Storm クラスターとやり取りするための PHP Thrift クライアントも見つける必要があります。

Storm Thrift の定義は、 https ://github.com/apache/storm/blob/master/storm-core/src/storm.thrift にあります。

また、PHP Thrift クライアントの例は、 https ://thrift.apache.org/tutorial/php にあります。

これらをまとめると、独自の Apache Storm アプリを PHP で作成できます。

情報ソース: http://storm.apache.org/about/multi-language.html http://storm.apache.org/releases/current/Using-non-JVM-languages-with-Storm.html

于 2016-06-28T21:29:31.613 に答える