Flume Channel支持的类型
本文及后续所有文章都以 1.8.0 做为版本讲解和入门学习
# Memory Channel
事件将被存储在内存中(指定大小的队列里),非适合和那些需要高吞吐量且允许数据丢失的场景下。
# Memory Channel 配置
# a1 代表一个flume 给每个组件匿名
a1.sources=r1
a1.channels=c1
a1.sinks=s1
# 指定source 的数据来源以及堆外开放的端口
a1.sources.r1.type=avro
a1.sources.r1.bind=node113
a1.sources.r1.port=8888
# 指定a1的channels基于内存
a1.channels.c1.type=memory
# 事件存储在信道中最大数量,默认100,根据event字节大小调整
a1.channels.c1.capacity=100000
# 每个事务中最大事件数(实际处理数据一批一批),默认100
a1.channels.c1.transactionCapacity=1500
# 指定a1的sinks 输出到控制台
a1.sinks.s1.type=logger
# 绑定a1 sources和channle 的关系
a1.sources.r1.channels=c1
# 绑定a1 sinks 和 channel 的关系
a1.sinks.s1.channel=c1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# JDBC Channel
事件会持久化 (存储) 到可靠的数据库里,目前支持嵌入式 Derby 数据库。即 source->channel->sink,在传输过程中,会先把事件存到关系型数据库里。但是 Derby 数据库不太好用,所以 JDBC Channel 目前仅用于测试,不用于生产环境。
# File Channel
性能比较低,但是即使程序出错数据不会丢失。
# File Channel 配置
# a1 代表一个flume 给每个组件匿名
a1.sources=r1
a1.channels=c1
a1.sinks=s1
# 指定source 的数据来源以及堆外开放的端口
a1.sources.r1.type=avro
a1.sources.r1.bind=node113
a1.sources.r1.port=8888
# 指定a1的channels基于文件
a1.channels.c1.type=file
# 存数据地址,逗号分割的目录列表,用以存放日志文件。
# 使用单独的磁盘上的多个目录可以提高文件通道效率。
a1.channels.c1.dataDirs=/home/tmp
# 指定a1的sinks 输出到控制台
a1.sinks.s1.type=logger
# 绑定a1 sources和channle 的关系
a1.sources.r1.channels=c1
# 绑定a1 sinks 和 channel 的关系
a1.sinks.s1.channel=c1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 内存溢出通道
优先把 Event 存到内存中,如果存不下,在溢出到文件中,目前处于测试阶段,还未能用于生产环境
# Kafka Channel
a1.channels.channel1.type = org.apache.flume.channel.kafka.KafkaChannel
a1.channels.channel1.kafka.bootstrap.servers = kafka-1:9093,kafka-2:9093,kafka-3:9093
a1.channels.channel1.kafka.topic = channel1
a1.channels.channel1.kafka.consumer.group.id = flume-consumer
# optional, the global truststore can be used alternatively
a1.channels.channel1.kafka.producer.security.protocol = SSL
a1.channels.channel1.kafka.producer.ssl.truststore.location = /path/to/truststore.jks
a1.channels.channel1.kafka.producer.ssl.truststore.password = <password to access the truststore>
# optional, the global truststore can be used alternatively
a1.channels.channel1.kafka.consumer.security.protocol = SSL
a1.channels.channel1.kafka.consumer.ssl.truststore.location = /path/to/truststore.jks
a1.channels.channel1.kafka.consumer.ssl.truststore.password = <password to access the truststore>
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
文档地址 (opens new window)
Kafka Channel 可以用于:
- source -> Kafka Channel -> Sink
- source -> Kafka Channel
- Kafka Channel -> Sink
上次更新: 4/1/2025, 5:03:02 PM