使用flume将csv文件写到kafka的主题中

现在有一个项目数据文件:event_attendees.csv、events.csv、test.csv、train.csv、user_friends.csv、users.csv

需求:需要将这些文件通过flume传到kafka中。

首先,你的虚拟机需要具备jdk、flume、kafka、zookeeper。

本人上述软件版本为:jdk-8u111-linux-x64.tar.gz、flume-ng-1.6.0-cdh5.14.2.tar.gz、kafka_2.11-2.0.0.tgz、zookeeper-3.4.5-cdh5.14.2.tar.gz

1.在/opt路径下,创建6个文件夹,分别存放上述的6个文件。

在/opt路径下,创建flumechk文件夹,用来临时存放数据的地址以及检查点。

在/opt路径下,创建flumecfg文件夹,用来存放6个flume的conf文件。

此步骤省略。

2.编辑conf文件。

①flume_event_attendees_kafka.conf

#定义source,channel和sink的名字
a2.channels=c2
a2.sources=s2
a2.sinks=k2

#设置source为Spooling Directory Source(专门对文件提取的一种source)
a2.sources.s2.type=spooldir
a2.sources.s2.channels=c2
#设置提取文件目录位置
a2.sources.s2.spoolDir=/opt/events
#按行解析最大长度字符.这个需要根据对应的文件一行有多少字符,来设定
#使用wc -L event_attendees.csv即可查看
a2.sources.s2.deserializer.maxLineLength=120000

#拦截器:将表的表头过滤掉
a2.sources.s2.interceptors=i2
a2.sources.s2.interceptors.i2.type=regex_filter
#正则匹配,将行开头为event的一行数据过滤掉
a2.sources.s2.interceptors.i2.regex=\s*event.*
a2.sources.s2.interceptors.i2.excludeEvents=true

#设置临时存放数据的地址以及检查点
a2.channels.c2.type=file
#将存储检查点文件的目录
a2.channels.c2.checkpointDir=/opt/flumechk/checkpoint
a2.channels.c2.dataDirs=/opt/flumechk/data

#设置sink端
a2.sinks.k2.type=org.apache.flume.sink.kafka.KafkaSink
a2.sinks.k2.kafka.topic=event_attendees_raw
a2.sinks.k2.kafka.bootstrap.servers=192.168.21.130:9092
#一批中要处理多少条消息
a2.sinks.k2.kafka.flumeBatchSize=20
#设置通道
a2.sinks.k2.channel=c2
#设置应答机制
a2.sinks.k2.kafka.producer.acks=1
#保留缓存时间,单位为ms
a2.sinks.k2.kafka.producer.linger.ms=10
#一批的记录大小,单位为B
a2.sinks.k2.kafka.producer.batch.size=524288

开启两个服务:

zkServer.sh start

 kafka-server-start.sh /opt/software/kafka211/config/server.properties 

创建主题:

kafka-topics.sh --create --topic event_attendees_raw --zookeeper 192.168.21.130:2181 --replication-factor 1 --partitions 1

开启consumer消费从头开始:

kafka-console-consumer.sh --bootstrap-server 192.168.21.130:9092 --topic event_attendees_raw --from-beginning

先更改一下/opt/software/flume160/bin下面的flume-ng文件。避免内存溢出。

JAVA_OPTS="-Xmx2048m"

开启flume服务:

flume-ng agent -n a2 -c /opt/software/flume160/conf/ -f /opt/flumecfg/flume_kafka.conf -Dflume.root.logger=DEBUG,console

可以通过一下命令查看上述主题的偏移量是否已写完:

kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 192.168.21.130:9092 --topic event_attendees_raw --time -1

说明,event_attendees.csv文件已经写到event_attendees_raw主题中了。over!

  • 0
    点赞
  • 2
    收藏 更改收藏夹
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

榴芒姐姐

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值