您的位置:首页 > 其它

Flume学习03 — Channel

2015-10-19 17:23 281 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: