- 启动Zookeeper和Kafka,单节点
启动kafka自带的Zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
启动kafka
bin/kafka-server-start.sh config/server.properties
2. 创建主题
创建一个主题 flume-demo,之后 Flume 收集到的数据都会发到这个主题上:
创建主题
bin/kafka-topics.sh --create --bootstrap-server service1:9092 --replication-factor 1 --partitions 1 --topic flume-demo
3. 启动kafka消费者
bin/kafka-console-consumer.sh --bootstrap-server service1:9092 --topic flume-demo
4. 配置Flume
新建配置文件 exec-memory-kafka.properties。监听一个名为 kafka.log 的文件,当文件内容有变化时,将新增加的内容发送到 Kafka 的 flume-demo主题上
a1.sources = s1
a1.channels = c1
a1.sinks = k1
a1.sources.s1.type=exec
a1.sources.s1.command=tail -f /tmp/kafka.log
a1.sources.s1.channels=c1
#设置Kafka接收器
a1.sinks.k1.type= org.apache.flume.sink.kafka.KafkaSink
#设置Kafka地址
a1.sinks.k1.brokerList=service1:9092
#设置发送到Kafka上的主题
a1.sinks.k1.topic=flume-demo
#设置序列化方式
a1.sinks.k1.serializer.class=kafka.serializer.StringEncoder
a1.sinks.k1.channel=c1
a1.channels.c1.type=memory
a1.channels.c1.capacity=10000
a1.channels.c1.transactionCapacity=100
5. 启动Flume
flume-ng agent --conf conf --conf-file examples/exec-memory-kafka.properties --name a1 -Dflume.root.logger=INFO,console