File Channel是将数据临时存储到本地磁盘上,因此数据不会丢失,但是读写速度相对较慢,适用于要求可靠性但是不要求速度的场景。
为了防止File Channel占用磁盘过多,所以在默认情况下,最多允许File Channel在磁盘上存储100W条数据,或者是2146435071B(大约2GB)的数据。
File Channel默认会将数据临时存储到~/.flume/file-channel/data目录下,可以通过属性dataDirs来修改,如果指定了多个数据目录,那么目录之间用逗号隔开
File Channel支持断点续传,默认情况下,会将偏移量记录到~/.flume/file-channel/checkpoint目录下,可以通过属性checkpointDir来修改
默认File Channel能够存储1000000条数据,可以通过属性capacity来条件
File Channel最多能占用2146435071B的磁盘,可以通过maxFileSize修改
File Channel的transactionCapacity的默认值是10000
File Channel配置的选项如下:
编写配置文件
a1.sources = s1
a1.channels = c1
a1.sinks = k1
a1.sources.s1.type = netcat
a1.sources.s1.bind = 0.0.0.0
a1.sources.s1.port = 9999
# 配置File Channel
# 类型必须是file
a1.channels.c1.type = file
# 偏移量的存储位置
a1.channels.c1.checkpointDir = /export/software/apache-flume-1.11.0/data/checkpoint
# 数据临时存储位置
a1.channels.c1.dataDirs = /export/software/apache-flume-1.11.0/data/
a1.sinks.k1.type = logger
a1.sources.s1.channels = c1
a1.sinks.k1.channel = c1
启动flume
flume-ng agent -c $FLUME_HOME/conf -n a1 -f filechannel.conf -Dflume.root.logger=INFO,console
发送数据 nc m1 9999
查看结果