引言
flume为什么要与kafka对接?
我们都知道flume可以跨节点进行数据的传输,那么flume与spark streaming对接不好吗?主要是flume对接到kafka的topic,可以给多个consumer group去生成多条业务线。虽然flume中的channel selector中的副本策略也可以给多个sink传输数据,但是每个channel selector都是很消耗资源的。其次,kafka也可以起到一个消峰的作用
一、flume采集的数据发往一个topic
这里为了方便测试,我采用的是netcat source、memory channel、kafka sink,当然你也可以采用你自己想要的方式配置flume,只需要根据官方文档修改对应的source和channel即可。
necat-flume-kafka.conf的配置文件如下:
#Name
a1.sources = r1
a1.sinks = k1
a1.channels = c1
#Source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
#Channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
#Sink
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.topic = wjt
a1.sinks.k1.brokerList = node01:9092,node02:9092,node03:9092
a1.sinks.k1.kafka.flumeBatchSize = 20
a1.sinks.k1.kafka.producer.acks = 1
a1.sinks