flume整合kafka

准备条件:安装好zookeeper集群、flume集群和kafka集群,并且先启动zookeeper集群。

配置flume-kafka.conf文件

[root@hadoop1 usr]# cd /usr/flume/apache-flume-1.8.0-bin/conf
[root@hadoop1 conf]#vi flume-kafka.conf

监听文件夹

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 = hadoop1:9092,hadoop2:9092,hadoop3: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

注:此时,向监听文件夹中添加文件,就可以在kafka的消费查看中显示添加文件中的内容。

监听日志

 # 指定Agent的组件名称
a1.sources = r1
a1.sinks = k1
a1.channels = c1
 
#指定Flume source(要监听的类型,此处为文件" /a.log")
a1.sources.r1.type = exec
#指定监听的文件(此文件需要自己先创建)
#“F“监控整个日志
a1.sources.r1.command =tail -F  /a.log     
a1.sources.r1.channels=c1

#sink到kafka里面
a1.sinks.k1.channel = c1
a1.sinks.k1.type =org.apache.flume.sink.kafka.KafkaSink
#设置Kafka的Topic,如果没有这个主题,需要提前创建
a1.sinks.k1.kafka.topic = test4
#设置Kafka的broker地址和端口号
a1.sinks.k1.kafka.bootstrap.servers = hadoop1:9092,hadoop2:9092,hadoop3: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

注:此时,向监听文件中添加数据,添加的数据就可以在kafka消费者窗口中显示添加的内容。

监听端口

#指定Agent的组件名称
a1.sources = r1
a1.sinks = k1
a1.channels = c1
 
#指定Flume source(要监听的类型,此处为端口"44444")
a1.sources.r1.type = netcat
#指定端口号所在的机器映射名
a1.sources.r1.bind = localhost
#指定监听的端口号
a1.sources.r1.port = 44444

#sink到kafka里面
a1.sinks.k1.channel = c1
a1.sinks.k1.type =org.apache.flume.sink.kafka.KafkaSink
#设置Kafka的Topic,如果没有这个主题,需要提前创建
a1.sinks.k1.kafka.topic = test4
#设置Kafka的broker地址和端口号
a1.sinks.k1.kafka.bootstrap.servers = hadoop1:9092,hadoop2:9092,hadoop3: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

开启监听端口

[root@hadoop1 ~]# yum -y  install  nc
[root@hadoop1 ~]# telnet localhost 44444

注:此时,在监听端口中输入信息,就可以在kafka消费者窗口中显示输入的信息内容。

启动kafka集群(每一台都启动)

[root@hadoop1 kafka_2.12-1.1.0]# ./bin/kafka-server-start.sh -daemon config/server.properties

创建主题

[root@hadoop1 kafka_2.12-1.1.0]# ./bin/kafka-topics.sh --create --zookeeper hadoop1:2181,hadoop2:2181,hadoop3:2181 --replication-factor 3 --partitions 3 --topic test

启动flume集群(可以在一台机器上启动,看需求)

[root@hadoop1 apache-flume-1.8.0-bin]# flume-ng agent --conf conf --conf-file conf/spooldir-hdfs.conf --name a1  -Dflume.root.logger=INFO,console

启动kafka集群的消费者(此时的生产者就是flume)

[root@hadoop2 kafka_2.12-1.1.0]# ./bin/kafka-console-consumer.sh --bootstrap-server hadoop1:9092, hadoop2:9092, hadoop3:9092 --from-beginning --topic test
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值