Kat*_*tie 29 file apache-kafka kafka-consumer-api kafka-producer-api
我想在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
Run Code Online (Sandbox Code Playgroud)
听取消费者的意见:
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
Test1
Test2
Run Code Online (Sandbox Code Playgroud)
我希望将数据文件甚至简单的文本文件传递给Producer,而不是标准输入,消费者可以直接看到它.真的很感激任何帮助.谢谢!
Bal*_*eth 67
你可以管道:
kafka-console-producer.sh --broker-list localhost:9092 --topic my_topic
--new-producer < my_file.txt
Run Code Online (Sandbox Code Playgroud)
在这里找到.
从0.9.0开始:
kafka-console-producer.sh --broker-list localhost:9092 --topic my_topic < my_file.txt
Run Code Online (Sandbox Code Playgroud)
这里有一些更通用的方法,但对于简单的文件来说可能有点矫枉过正
尾巴
tail -n0 -F my_file.txt | kafka-console-producer.sh --broker-list localhost:9092 --topic my_topic
解释
tail 随着文件的增长或日志不断添加到文件末尾,从文件末尾读取-n0 表示输出最后 0 行,因此只选择新行-F 按名称而不是描述符跟随文件,因此即使它被旋转它也能工作系统日志
options {
flush_lines (0);
time_reopen (10);
log_fifo_size (1000);
long_hostnames (off);
use_dns (no);
use_fqdn (no);
create_dirs (no);
keep_hostname (no);
};
source s_file {
file("path to my-file.txt" flags(no-parse));
}
destination loghost {
tcp("*.*.*.*" port(5140));
}
Run Code Online (Sandbox Code Playgroud)
消费
nc -k -l 5140 | kafka-console-producer.sh --broker-list localhost:9092 --topic my_topic
说明(来自man nc)
-k' Forces nc to stay listening for another connection after its current connection is completed. It is an error to use this option without the -l option.
-l' Used to specify that nc should listen for an incoming connection rather than initiate a connection to a remote host. It is an error to use this option in conjunction with the -p, -s, or -z options. Additionally, any timeouts specified with the -w option are ignored.
Run Code Online (Sandbox Code Playgroud)
参考
$ kafka-console-producer.sh --broker-list localhost:9092 --topic my_topic < my_file.txt
Run Code Online (Sandbox Code Playgroud)
在Kafka-0.9.0为我工作
| 归档时间: |
|
| 查看次数: |
49288 次 |
| 最近记录: |