当设计Flume数据流程图时,决定使用什么类型的channel将是至关重要的。在写这篇文章是,当前有几个channel可供选择,分别是Memory Channel, JDBC Channel , File Channel,Psuedo Transaction Channel。比较常见的是前三种channel。具体使用那种channel,需要根据具体的使用场景。这里我详细讲解File Channel 和Memory Channel,而JDBC Channel当前支持它本身嵌入的Derby 数据库。
File Channel是一个持久化的隧道(channel),他持久化所有的事件,并将其存储到磁盘中。因此,即使Java 虚拟机当掉,或者操作系统崩溃或重启,再或者事件没有在管道中成功地传递到下一个代理(agent),这一切都不会造成数据丢失。Memory Channel是一个不稳定的隧道,其原因是由于它在内存中存储所有事件。如果java进程死掉,任何存储在内存的事件将会丢失。另外,内存的空间收到RAM大小的限制,而File Channel这方面是它的优势,只要磁盘空间足够,它就可以将所有事件数据存储到磁盘上。
下面,我列举这两个Channel的有关参数配置。
文件Channel设置
|
参数名称 |
默认值 |
描述 |
|
type |
- |
类型名称 |
|
checkpointDir |
~/.flume/file-channel/checkpoint |
检测点文件所存储的目录 |
|
useDualCheckpoints |
false |
备份检测点如果设置为true,backupChec kpointDir必须设置 |
|
backupCheckpointDir |
– |
备份检测点的备份到所在的目录,不要与数据检测点或者目录重复 |
|
dataDirs |
~/.flume/file-channel/data |
数据存储所在的目录设置 |
|
transactionCapacity |
1000 |
事务容量的最大值设置 |
|
checkpointInterval |
30000 |
检测点之间的时间值设置(单位微秒) |
|
maxFileSize |
2146435071 |
一个单一日志的最大值设置(以字节为单位) |
|
minimumRequiredSpace |
524288000 |
最小的请求闲置空间(以字节为单位) |
|
capacity |
1000000 |
隧道的最大容量 |
|
keep-alive |
3 |
一个存放操作的等待时间值(秒)设置 |
|
write-timeout |
3 |
一个写操作的等待时间值(秒)设置 |
|
checkpoint-timeout |
600 |
Expert:一个检测点操作的等待时间值(秒)设置 |
|
use-log-replay-v1 |
false |
Expert: 使用老的回复逻辑 |
|
use-fast-replay |
false |
Expert: 回复不需要队列 |
|
encryption.activeKey |
– |
使用关键字名称去加密新数据 |
|
encryption.cipherProvider |
– |
密码提供者类型,支持的类型有: AESCTRNOPADDING |
|
encryption.keyProvider |
– |
关键字提供者类型,支持的类型有: JCEKSFILE |
|
encryption.keyProvider.keyStoreFile |
– |
存储关键字文件的路径 |
|
encrpytion.keyProvider.keyStorePasswordFile |
– |
存储关键字密钥文件的路径 |
|
encryption.keyProvider.keys |
– |
列出所有的关键字(比如,激活关键字设置历史) |
|
encyption.keyProvider.keys.*.passwordFile |
– |
可选关键字密钥文件的路径 |
更多信息,请参考下列资源。
http://flume.apache.org/FlumeUserGuide.html#file-channel
内存 Channel参数设置
|
参数名称 |
默认值 |
描述 |
|
type |
隧道名称类型memory |
|
|
capacity |
100 |
存储在channel中的最大容量 |
|
transactionCapacity |
100 |
从一个source中去或者给一个sink,每个事务中最大的事件数 |
|
keep-alive |
3 |
对于添加或者删除一个事件的超时的秒钟 |
|
byteCapacityBufferPercentage |
20 |
定义缓存百分比。 |
|
byteCapacity |
see description |
最大内存所有事件允许总字节数 |
更多信息,请参考下列资源。
http://flume.apache.org/FlumeUserGuide.html#memory-channel
所以,本人推荐使用文件Channel。
Flume 中文件channel VS 内存channel (File Channel VS Memory Channel),布布扣,bubuko.com
Flume 中文件channel VS 内存channel (File Channel VS Memory Channel)
原文:http://blog.csdn.net/john_f_lau/article/details/20913831