Flume和Kafka的整合
1.配置flume,在flume的conf目录下新建文件(flume_kafka.conf)并配置。
########################################################
##主要作用是监听目录中的新增数据,采集到数据之后,输出到kafka
## 注意:Flume agent的运行,主要就是配置source channel sink
## 下面的a1就是agent的代号,source叫r1 channel叫c1 sink叫k1
#########################################################
a1.sources = r1
a1.sinks = k1
a1.channels = c1
#具体定义source
a1.sources.r1.type = spooldir
#先创建此目录,保证里面空的
a1.sources.r1.spoolDir = /logs
#sink到kafka里面
a1.sinks.k1.channel = c1
a1.sinks.k1.type =org.apache.flume.sink.kafka.KafkaSink
#设置Kafka的Topic
a1.sinks.k1.kafka.topic = test3
#设置Kafka的broker地址和端口号
a1.sinks.k1.kafka.bootstrap.servers = master:9092,slaver1:9092,slaver2:9092
#配置批量提交的数量
a1.sinks.k1.kafka.flumeBatchSize = 20
a1.sinks.k1.kafka.producer.acks = 1
a1.sinks.k1.kafka.producer.linger.ms = 1
a1.sinks.ki.kafka.producer.compression.type= snappy
#对于channel的配置描述 使用文件做数据的临时缓存 这种的安全性要高
a1.channels.c1.type = file
a1.channels.c1.checkpointDir = /home/uplooking/data/flume/checkpoint
a1.channels.c1.dataDirs = /home/uplooking/data/flume/data
#通过channel c1将source r1和sink k1关联起来
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
2.启动
2.1.启动Zookeeper(3台)
[root@master bin]# ./zkServer.sh start
2.2.再启动kafka(3台)
./bin/kafka-server-start.sh -daemon config/server.properties &
2.3.如果没有主题创建主题
./bin/kafka-topics.sh --create --zookeeper master:2181,slaver1:2181,slaver2:2181 --replication-factor 3 --partitions 3 --topic 主题名
2.4.启动一个该主题的消费者
./bin/kafka-console-consumer.sh --bootstrap-server master:9092, slaver1:9092, slaver2:9092 --from-beginning --topic 主题名
2.5.启动flume
bin/flume-ng agent -n a1 -c conf -f conf/文件名 -Dflume.root.logger=INFO,console
2.6.向flume监听目录里面添加内容,观察消费者