利用flume把文件传到kafka的topic中

数据准备

把需要传输的文件event_attendees.csv放到新建的文件下,我的路径是/root/data/event_attendees

开启服务

zkServer.sh start
kafka-server-start.sh /opt/soft/kafka211/config/server.properties

flume准备工作:

在root下新建文件夹flume和flumeconf,flume下新建文件夹checkpoint和data,flumeconf下新建配置文件event_attendees.conf

event_attendees.conf文件配置:

a1.channels = c1
a1.sources = s1
a1.sinks = k1

a1.sources.s1.type = spooldir
a1.sources.s1.channels = c1
#需要传输的文件所在的路径,写到文件夹
a1.sources.s1.spoolDir = /root/data/event_attendees
#更改每行的最大长度,如果待传的文件有一行过大而超过默认参数值,那么就会被分行,导致后续查询行数和原文件不一致
a1.sources.s1.deserializer.maxLineLength=120000
#设置正则拦截器,拦截表头
a1.sources.s1.interceptors=i1
a1.sources.s1.interceptors.i1.type = regex_filter
a1.sources.s1.interceptors.i1.regex = \s*event.*
#符合上述正则规则会被拦截
a1.sources.s1.interceptors.i1.excludeEvents=true

a1.channels.c1.type = file
a1.channels.c1.checkpointDir = /root/flume/checkpoint
a1.channels.c1.dataDirs = /root/flume/data


a1.sinks.k1.channel = c1
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.kafka.topic = event_attendees
a1.sinks.k1.kafka.bootstrap.servers = 192.168.181.132:9092
#flume批量发送文件的大小
a1.sinks.k1.kafka.flumeBatchSize = 20
#设置kafka的ack应答机制为1,保证收到leader的接收完成反馈信息
a1.sinks.k1.kafka.producer.acks = 1
#kafka内部批量发送的文件大小
a1.sinks.k1.kafka.producer.batch.size=524288
#kafka缓存时间,毫秒单位,设置了就算达到批量发送的大小也会等待,不设置的话可能还没达到批量发送的文件大小也会发送
a1.sinks.k1.kafka.producer.linger.ms = 10

kafka准备工作:

创建topic

kafka-topics.sh --zookeeper 192.168.181.132:2181 --create --topic event_attendees --replication-factor 1 --partitions 1

监控flume传入数据的信息:

kafka-console-consumer.sh --bootstrap-server 192.168.181.132:9092 --topic event_attendees --from-beginning

运行conf文件,操作传输数据:

flume-ng agent -n a1 -c /opt/soft/flume160/conf -f /root/flumeconf/event_attendees.conf -Dflume.root.logger=DEBUG,console

待监控窗口和执行conf文件的窗口停止运行,可以查看导入的数据行数

flume-ng agent -n a1 -c /opt/soft/flume160/conf -f /root/flumeconf/event_attendees.conf -Dflume.root.logger=DEBUG,console
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值