5

Kafka の標準入力ではなく、(統計をチェックするために) ループでデータ ファイルを読み込もうとしています。Kafka をダウンロードした後、次の手順を実行しました。

飼育係を開始しました:

bin/zookeeper-server-start.sh config/zookeeper.properties

起動したサーバー:

bin/kafka-server-start.sh config/server.properties

「test」という名前のトピックを作成しました:

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

プロデューサーを実行しました:

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 
Test1
Test2

消費者が聞いた:

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
Test1
Test2

標準入力の代わりに、コンシューマーが直接見ることができるデータ ファイルをプロデューサーに渡したいと考えています。または、コンソール コンシューマーの代わりに、データ ファイルを読み取ることができるカフカ プロデューサーがありますか。どんな助けでも本当に感謝します。ありがとう!

4

7 に答える 7

7

cat を介してデータ ファイルを読み取り、それを kafka-console-producer.sh にパイプラインすることができます。

cat ${datafile} | ${kafka_home}/bin/kafka-console-producer.sh --broker-list ${brokerlist} --topic test 
于 2016-02-13T12:51:40.783 に答える
4

常に単一のファイルがある場合は、tail コマンドを使用して、それを kafka コンソール プロデューサーにパイプラインすることができます。

ただし、いくつかの条件が満たされたときに新しいファイルが作成される場合は、作成された新しいファイルを監視するために apache.commons.io.monitor を使用してから、上記を繰り返す必要があります。

于 2016-10-10T16:20:18.030 に答える
1

Linux または Mac を使用している場合の最も簡単な方法は次のとおりです。

kafka-console-producer --broker-list localhost:9092 --topic test < messages.txt

参考: https ://github.com/Landoop/kafka-cheat-sheet

于 2019-05-24T19:21:43.237 に答える
0

以下のコマンドは、もちろんそれを行う最も簡単な方法です。

kafka-console-producer --broker-list localhost:9092 --topic test < message.txt

ただし、ファイルが見つからない場合があります。例 :

C:\kafka_2.11-2.4.0\bin\windows>kafka-console-producer.bat --broker-list localhost:9092 --topic jason-input < C:\data\message.txt

実際のパスを指定しましたが、現在の場所で C を見つけることができないため、エラーが発生します: ファイルが見つかりません。実際のパスを指定したので、ルートに移動し、そこからパスを開始すると考えていますが、現在の場所で C(ルート) を検索しています。

その解決策は、パスに ..\ を指定して親フォルダーに移動することです。例えば。あなたは次のようなコマンドを実行しています

C:\kafka_2.11-2.4.0\bin\windows>kafka-console-producer.bat --broker-list localhost:9092 --topic jason-input < ..\..\..\data\message.txt

今のところ、私はwindowsフォルダーにいます。..\ は現在のディレクトリを bin フォルダーに移動し、再び ..\ は現在のディレクトリを kafka.... フォルダーに移動し、再び ..\ は C:. だから今、私の道が始まります。データ、次に message.txt

于 2020-09-28T12:40:43.927 に答える