优秀的编程知识分享平台

网站首页 > 技术文章 正文

使用Flume同步日志到Kafka flume收集日志到hdfs

nanyue 2024-12-29 04:55:21 技术文章 5 ℃

Flume作为一个独立的进程运行在节点上,它监控服务器本地的文件,并根据你提供的代理配置将数据发送给接收器Kafka。

配置例子

# 定义 agent 名字
agent1.sources = src1
agent1.sinks = sink1
agent1.channels = ch1

# 配置 Source
agent1.sources.src1.type = exec
agent1.sources.src1.command = tail -F /path/to/log/file

# 配置 Channel
agent1.channels.ch1.type = memory
agent1.channels.ch1.capacity = 1000
agent1.channels.ch1.transactionCapacity = 100

# 配置 Sink
agent1.sinks.sink1.type = org.apache.flume.sink.kafka.KafkaSink
agent1.sinks.sink1.kafka.bootstrap.servers = localhost:9092
agent1.sinks.sink1.kafka.topic = my_topic
agent1.sinks.sink1.kafka.flumeBatchSize = 20
agent1.sinks.sink1.kafka.producer.acks = 1

# 将 Source, Channel 和 Sink 连接起来
agent1.sources.src1.channels = ch1
agent1.sinks.sink1.channel = ch1

运行 Flume

将以上配置保存到一个文件,例如 flume-kafka.conf。
使用以下命令启动 Flume agent:

flume-ng agent --conf /path/to/flume/conf --conf-file /path/to/flume-kafka.conf --name agent1 -Dflume.root.logger=INFO,console

通过这个配置,Flume 将从指定的日志文件中读取数据,并将这些数据传输到 Kafka 的指定主题中。

最近发表
标签列表