Flume学习03 — Channel

Flume提供了大量的Channel,下面主要介绍Memory Channel、File Channel、Kafka Channel和Spillable Memory Channel。

类型说明
Memory ChannelEvent数据存储在内存中。
JDBC ChannelEvent数据存储在持久化存储中,当前Flume Channel内置支持Derby。
Kafka ChannelEvent数据存储在Kafka Topic中。
File ChannelEvent数据存储在磁盘文件中。
Spillable Memory ChannelEvent数据存储在内存中和磁盘上,当内存队列满了,会持久化到磁盘文件(当前试验性的,不建议生产环境使用)。
Pseudo Transaction Channel单元测试用。
Custom Channel自定义Channel实现。


Memory Channel

Memory Channel把Event保存在内存队列中,该队列能保存的Event数量有最大值上限。由于Event数据都保存在内存中,Memory Channel有最好的性能,不过也有数据可能会丢失的风险,如果Flume崩溃或者重启,那么保存在Channel中的Event都会丢失。同时由于内存容量有限,当Event数量达到最大值或者内存达到容量上限,Memory Channel会有数据丢失。

配置项默认值说明
type值为memory
capacity100
transactionCapacity100Channel每次提交的Event数量


Memory Channel参考配置,a1为Agent实例名称。

a1.channels = c1
a1.channels.c1.type = memory
a1.channels.c1.capacity = 10000
a1.channels.c1.transactionCapacity = 10000
a1.channels.c1.byteCapacityBufferPercentage = 20
a1.channels.c1.byteCapacity = 800000


File Channel

File Channel把Event保存在本地硬盘中,比Memory Channel提供更好的可靠性和可恢复性,不过要操作本地文件,性能要差一些。

配置项默认值说明
type值为file
dataDir保存路径


File Channel参考配置,a1为Agent实例名称。

a1.channels = c1
a1.channels.c1.type = file
a1.channels.c1.checkpointDir = /mnt/flume/checkpoint
a1.channels.c1.dataDirs = /mnt/flume/data


Kafka Channel

Kafka Channel把Event保存在Kafka集群中,能提供比File Channel更好的性能和比Memory Channel更高的可靠性。

配置项默认值说明
typeorg.apache.flume.channel.kafka.KafkaChannel
brokerListKafka集群Broker列表
zookeeperConnectKafka集群的ZooKeeper路径


Kafka Channel参考配置,a1为Agent实例名称。

a1.channels.channel1.type = org.apache.flume.channel.kafka.KafkaChannel
a1.channels.channel1.capacity = 10000
a1.channels.channel1.transactionCapacity = 1000
a1.channels.channel1.brokerList=kafka-2:9092, kafka-3:9092
a1.channels.channel1.topic=channel1
a1.channels.channel1.zookeeperConnect=kafka-1:2181


Spillable Memory Channel

Spillable Memory Channel把Event保存到内存队列和本地文件中,数据优先存储在内存队列中,当内存队列满了以后会保存到文件中。Spillable Memory Channel在保持较高性能的同时,又能兼顾可靠性。

配置项默认值说明
typeSPILLABLEMEMORY
memoryCapacity10000内存队列中数据最大数量
overflowCapacity100000000文件中数据最大数量


Kafka Channel参考配置如下,a1为Agent实例名称。

a1.channels = c1
a1.channels.c1.type = SPILLABLEMEMORY
a1.channels.c1.memoryCapacity = 10000
a1.channels.c1.overflowCapacity = 1000000
a1.channels.c1.byteCapacity = 800000
a1.channels.c1.checkpointDir = /mnt/flume/checkpoint
a1.channels.c1.dataDirs = /mnt/flume/data
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值