脚本目的:读取某个目录下的文件,推送给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