私は特定のディレクトリ(Spooldir)からデータを読み込み、Kafka Sinkに送信する1つのflumeエージェント(1つのソース、1つのチャネル、1つのシンク)を持っています。私の観察に基づいて、特定のパーティションに書き込むだけです。kafkaトピック/パーティションへの送信/処理を並列化する方法は?
kafkaトピック/パーティションへの並列送信/処理を可能にする設定は何ですか?
私は特定のディレクトリ(Spooldir)からデータを読み込み、Kafka Sinkに送信する1つのflumeエージェント(1つのソース、1つのチャネル、1つのシンク)を持っています。私の観察に基づいて、特定のパーティションに書き込むだけです。kafkaトピック/パーティションへの送信/処理を並列化する方法は?
kafkaトピック/パーティションへの並列送信/処理を可能にする設定は何ですか?
あなたのspooldirソースとチャンネルを使用する別のシンクを追加しようとすることができます。
だから、の線に沿って何か: シンク - チャンネル1 - シンク1 - シンク2
あなたは、あなたのspooldirソースからアイテムを再読み込み可能性があるとして、あなたは別のチャネルが必要な場合はわかりません。
デフォルトでは、イベントはパーティション間にkey
ヘッダーで分散されます。自分でデータを分割する場合は、インターセプタを使用する必要があります。これにはpartitionIdHeader
が設定されます。
あなたはただカフカシンクに同じソースのためのより多くのチャンネルを追加し、各チャネルを接続する必要があるよりも、複数のトピックにデータを送信する必要がある場合:
a1.sources.r1.channels = c1 c2
a1.sinks.k1.channel = c1
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.kafka.topic = topic1
...
a1.sinks.k2.channel = c2
a1.sinks.k2.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k2.kafka.topic = topic2