私はStormで作業し、ローカル テキスト ファイルを入力ソースとして使用する基本的なプログラムを開発しました。しかし今は、外部システムから継続的に送られてくるデータのストリーミングに取り組まなければなりません。この目的には、Kafka が最適です。
問題は、Spout に Kafka からストリーミング データを取得させる方法です。または、Storm を Kafka と統合する方法。Kafkaからのデータを処理できるようにするにはどうすればよいですか?
私はStormで作業し、ローカル テキスト ファイルを入力ソースとして使用する基本的なプログラムを開発しました。しかし今は、外部システムから継続的に送られてくるデータのストリーミングに取り組まなければなりません。この目的には、Kafka が最適です。
問題は、Spout に Kafka からストリーミング データを取得させる方法です。または、Storm を Kafka と統合する方法。Kafkaからのデータを処理できるようにするにはどうすればよいですか?
KafkaSpoutを探します。
これは、Kafka クラスターから読み取る通常の Storm Spout 実装です。必要なのはlist of brokers
、topic name
、 などのパラメーターを使用してそのスパウトを構成することだけです。その後、出力を対応するボルトにチェーンして、さらに処理することができます。
上記の同じドキュメントから、構成は次のようになります。
SpoutConfig spoutConfig = new SpoutConfig(
ImmutableList.of("kafkahost1", "kafkahost2"), // List of Kafka brokers
8, // Number of partitions per host
"clicks", // Topic to read from
"/kafkastorm", // The root path in Zookeeper for the spout to store the consumer offsets
"discovery"); // An id for this consumer for storing the consumer offsets in Zookeeper
KafkaSpout kafkaSpout = new KafkaSpout(spoutConfig);