flume+kafka安装部署使用

安稳与你 提交于 2020-03-11 01:14:46

安装部署flume+kafka

关于Flume 的 一些核心概念:

组件名称 功能介绍

Agent代理 使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks。

Client客户端 生产数据,运行在一个独立的线程。

Source源 从Client收集数据,传递给Channel。

Sink接收器 从Channel收集数据,进行相关操作,运行在一个独立线程。

Channel通道 连接 sources 和 sinks ,这个有点像一个队列。

Events事件 传输的基本数据负载。

1.在apache官网安装flume
入门文档
kafka入门文档

整合配置

1.新建kafka.properties在/flume/conf

agent.sources = s1

agent.channels = c1

agent.sinks = k1
agent.sources.s1.type=exec
agent.sources.s1.command=tail -F /tmp/flume-logs/kafka.log
agent.sources.s1.channels=c1                          

agent.channels.c1.type=memory

agent.channels.c1.capacity=10000

agent.channels.c1.transactionCapacity=100
#设置Kafka接收器                                                                                                                    

agent.sinks.k1.type= org.apache.flume.sink.kafka.KafkaSink

#设置Kafka的broker地址和端口号                                                                                                      

agent.sinks.k1.brokerList=localhost:9092

#设置Kafka的Topic

agent.sinks.k1.topic=flumekafkatest

#设置序列化方式                                                                                                                     

agent.sinks.k1.serializer.class=kafka.serializer.StringEncoder
agent.sinks.k1.channel=c1

2.创建agent.sources.s1.command=tail -F /tmp/flume-logs/kafka.log 对应log文件
3.创建agent.sinks.k1.topic=flumekafkatest 对应topic

kafka配置

查看topic列表

./bin/kafka-topics.sh --list --bootstrap-server localhost:9092

新建topic

./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic flumekafkatest

再次查看topic列表

在这里插入图片描述
开启消费者

./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic flumekafkatest --from-beginning&

测试kafka

kafka常用命令

开启flume

bin/flume-ng agent --conf /${FLUME_HOME}conf --conf-file example.conf --name a1 -Dflume.root.logger=INFO,console
附录:可以先用netcat测试
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe / configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# Describe the sink
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.kafka.topic = flumekafkatest
a1.sinks.k1.kafka.bootstrap.servers = 127.0.0.1:9092
a1.sinks.k1.kafka.flumeBatchSize = 20
a1.sinks.k1.kafka.producer.acks = 1
a1.sinks.k1.kafka.producer.linger.ms = 1
a1.sinks.k1.kafka.producer.compression.type = snappy

# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

新建topic

> bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test

查看topic列表

> bin/kafka-topics.sh --list --bootstrap-server localhost:9092

开启flume

bin/flume-ng agent --conf /${FLUME_HOME}conf --conf-file example.conf --name a1 -Dflume.root.logger=INFO,console

开启kafka消费者

 bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

开启netcat 44444端口

nc localhost 44444

效果
在这里插入图片描述
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!