3

Flume でできるように、Kafka でファンアウト (複製) できるかどうかは不明です。

Kafka で HDFS または S3 にデータを保存し、リアルタイム処理のためにそのデータの複製を Storm に送信したいと考えています。Storm の集計/分析の出力は、Cassandra に保存されます。Kafka から Storm にすべてのデータを流し、次に Storm から 2 つの出力を流す実装がいくつか見られます。ただし、未加工のデータ ストレージに対する Storm の依存関係を排除したいと考えています。

これは可能ですか?このようなドキュメント/例/実装を知っていますか?

また、Kafka は S3 ストレージを適切にサポートしていますか?

HDFS に保存するための Camus を見ました。このジョブを cron 経由で実行して、Kafka から HDFS にデータを継続的にロードしますか? 前のインスタンスが終了する前にジョブの 2 番目のインスタンスが開始された場合はどうなりますか? 最後に、Camus は S3 で動作しますか?

ありがとうございます。

4

4 に答える 4

1

Camus に関しては、ええ、ジョブを起動するスケジューラが機能するはずです。彼らが LinkedIn で使用しているのは Azkaban です。こちらもご覧ください。

一方が他方が終了する前に起動すると、一部のデータが 2 回読み取られます。2 番目のジョブは、最初のジョブで使用されたのと同じオフセットから読み取りを開始するためです。

カミュ S3 に関しては、今のところ、それが整っているとは思いません。

于 2013-07-10T00:17:08.277 に答える
0

S3 ストレージの Kafka サポートに関しては、データを S3 に保存するために簡単にプラグインできる Kafka S3 コンシューマーがいくつかあります。kafka-s3-storageはその 1 つです。

于 2013-06-22T23:07:02.557 に答える
0

翻訳されたデータをストームにフィードする方法は多数あります。私には明確でない主な質問は、どの依存関係を排除したいのか、どのタスクをストームが実行しないようにしたいのかということです。ストームが xml または json を受け取ることに問題がないと考えられる場合は、2 つのコンシューマーを使用して元のキューから簡単に読み取ることができます。各コンシューマーが読み取るメッセージを制御するため、両方が同じメッセージを読み取る可能性があります。1 つのコンシューマーがデータをストレージに挿入し、もう 1 つのコンシューマーが情報を変換してストームに送信します。これの実行可能性に実際の複雑さはありませんが、次の理由により、これは理想的なソリューションではないと思います。

  1. 保守性 - 消費者には監督が必要です。したがって、実行中のコンシューマを監視する必要があります。展開とデータ型の処理方法によっては、これは簡単ではない作業になる場合があります。特に、すでにストームがインストールされていて監視されている場合。

  2. ストーム接続 - このデータをストームに接続する方法を理解する必要があります。Srormには、私が使用したカフカスパウトがあり、非常にうまく機能します。ただし、推奨されるアーキテクチャを使用すると、翻訳されたメッセージを配置するための追加の kafka トピックを意味します。スパウトは元のトピックから直接情報を読み取り、単純なボルトを使用して翻訳することもできるため、これはあまり効率的ではありません。

これを処理するための推奨される方法は、kafka スパウトを使用して生データを読み取り、1 つのボルトを使用して生データをストレージに送信し、別のボルトを使用してそれを変換するトポロジを形成することです。ただし、このソリューションは、生データ ビジネスに嵐を巻き起こしたくない理由によって異なります。

于 2013-06-23T15:24:21.587 に答える