安装部署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
效果
来源:CSDN
作者:Jatham_C
链接:https://blog.csdn.net/qq_42784606/article/details/104773946