脚本目的:读取某个目录下的文件,推送给kafka

  • 前提
每个文件的大小要小于kafka配置server.properties中能够承载的最大消息的大小(默认是1M)的范围内
  • 文件切分(将a.txt按照1M的大小切分成多个文件)
split -C 1024 a.txt
  • 循环遍历/data1/kafka_data/目录下的内容,推送到kafka
#!/bin/bash

#root exec
topic="test"
broker="host1:9092,host2:9092,host3:9092"

fileParentPath=/data1/kafka_data/
KAFKA_HOME=/usr/local/kafka

cnt=0

for line in `ls $fileParentPath`
do
 cnt=$(($cnt+1))
 file=${fileParentPath}${line}
 echo $cnt
 cat $file | $KAFKA_HOME/bin/kafka-console-producer.sh --topic $topic --broker-list $broker
done
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐