Flume常见Source、Channel、Sink配置

整合一下Flume常见的Source、Channel、Sink的配置

--------------------------常见的Source的配置--------------------
Avro Source配置:

参数默认值描述
channels-与之相连的Channel,可以配置多个。用空格隔开。在单个代理流程中,是通过channel连接sources和sinks。一个source实例对应多个channels,但一个sink实例只能对应一个channel。
typeavro类型,需设置为“avro”。每一种source的类型都为相应的固定值。
bind-绑定和source关联的主机名或IP地址。
port-绑定端口号。
sslfalse是否使用SSL加密。true or false
truststore-typeJKSJava信任库类型。填写JKS或其他java支持的truststore类型。
truststore-Java信任库类型。填写JKS或其他java支持的truststore类型。
truststore-password-Java信任库密码。
keystore-typeJKS密钥存储类型。填写JKS或其他java支持的truststore类型。
keystore-密钥存储文件。
keystore-passwordavro密钥存储密码。

Spooling Source 配置:

参数默认值描述
channels-与之相连的Channel,可以配置多个。
typespooldir类型,需设置为“spooldir”。
monTime0(不开启)线程监控阈值,更新时间大于阈值时会重新启动该Source,单位:秒。
spoolDir-监控目录
fileSuffix.COMPLETED文件传输完成后添加的后缀。
deletePolicynever文件传输完成后源文件删除策略,支持“never”或“immediate”。分别别是从不删除和立即删除
ignorePattern^$忽略文件的正则表达式表示。
trackerDir.flumespool传输过程中元数据存储路径。
batchSize1000Source传输粒度。
decodeErrorPolicyFAIL编码错误策略。可选FAIL、REPLACE、IGNORE。
FAIL:抛出异常并让解析失败
REPLACE:将不能识别的字符用其它字符代替,通常是字符U+FFFD。
IGNORE:直接丢弃不能解析的字符串。
说明:如果文件中有编码错误,请配置“decodeErrorPolicy”为“REPLACE”或“IGNORE”Flume遇到编码错误将跳过编码错误,继续采集后续日志。
deserializerLINE文件解析器,值为“LINE”或 “BufferedLine”。
配置为“LINE”时,对从文件读取的字符逐个转码。
配置为“BufferedLine”时,对文件读取的一行或多行的字符进行批量转码,性能更优。
deserializer.maxLineLength2048按行解析最大长度。0到 2,147,483,647。
deserializer.maxBatchLine1按行解析最多行数,如果行数设置为多行,“maxLineLength”也应该设置为相应的倍数。例如maxBatchLine设置为2,“maxLineLength”相应的设置为2048*2为4096。
selector.typereplicating选择器类型,支持“replicating”或“multiplexing”。
“replicating”表示同样的内容会发给每一个channel。
“multiplexing”表示根据分发规则,有选择地发给某些channel。
interceptors-拦截器配置。

说明:
Spooling Source在按行读取过程中,会忽略掉每一个Event的最后一个换行符,该换行符所占用的数据量指标不会被Flume统计。

Kafka Source 配置:

参数默认值描述
channels-与之相连的Channel,可以配置多个。
typeorg.apache.flume.source.kafka.KafkaSource需设置为“org.apache.flume.source.kafka.KafkaSource”。
monTime0(不开启)线程监控阈值,更新时间大于阈值时重新启动该Source,单位:秒
batchSize1000每次写入Channel的Event数量
batchDurationMillis1000每次消费topic数据的最大时长,单位:毫秒
keepTopicInHeaderfalse是否在Event Header中保存topic,如果保存,Kafka Sink配置的topic将无效。
true
false
keepPartitionInHeaderfalse是否在Event Header中保存partitionID,如果保存,Kafka Sink将写入对应的Partition。
true
false
kafka.bootstrap.servers-brokers地址列表,多个地址用英文逗号分隔。
kafka.consumer.group.id-Kafka消费者组ID。
kafka.topics-订阅的kafka topic列表,用英文逗号分隔
kafka.topics.regex-符合正则表达式的topic会被订阅,优先级高于“kafka.topics”,如果配置将覆盖“kafka.topics”
kafka.security.protocolSASL_PLAINTEXTKafka安全协议,未启用Kerberos集群中须配置为“PLAINTEXT”
Other Kafka Consumer Properties-其他Kafka配置,可以接受任意Kafka支持的消费参数配置,配置需要加前缀“.kafka”

Taildir Source 配置:

参数默认值描述
channels-与之相连的Channel,可以配置多个
typetaildir类型,需配置为“taildir”
filegroups-设置采集文件目录分组名字,分组名字中间使用空格间隔
filegroups..parentDir-父目录,需要配置为绝对路径
filegroups..filePattern-相对父目录的文件路径,可以包含目录,支持正则表达式,须与父目录联合使用
positionFile-传输过程中元数据存储路径
headers..-设置某一个分组采集数据时Event中的key-value值
byteOffsetHeaderfalse是否在每一个Event头中携带该Event在源文件中的位置信息,该信息保存在“byteoffset”变量中
skipToEndfalseFlume在重启后是否直接定位到文件最新的位置处,以读取最新的数据
idleTimeout120000设置读取文件的空闲时间,单位:毫秒。如果在该时间内文件内容没有变更,关闭掉该文件,关闭后如果该文件有数据写入,重新打开并读取数据
writePosInterval3000设置将元数据写入到文件的周期,单位:毫秒
batchSize1000批次写入Channel的Event数量
monTime0(不开启)线程监控阈值,更新时间大于阈值时重新启动该Source,单位:秒

-------------------------------常用Channel配置---------------------------
Memory Channel 配置:

Memory Channel使用内存作为缓存区,Events存放在内存队列中

参数默认值描述
type-类型,需配置为“memory”
capacity10000缓存在Channel中的最大Event数
transactionCapacity1000每次存取的最大Event数
channelfullcount10Channel full次数,达到该次数后发送告警

File Channel 配置:

File Channel使用本地磁盘作为缓存区,Events存放在设置的“dataDirs”配置项文件夹中

参数默认值描述
type-类型,需配置为“memory”
checkpointDir-检查点存放路径
dataDirs-数据缓存路径,设置多个路径可提升性能,中间用逗号分开
maxFileSize2146435071单个缓存文件的最大值,单位:字节
minimumRequiredSpace524288000缓冲区空闲空间最小值,单位:字节
capacity1000000缓存在Channel中的最大Event数
transactionCapacity10000每次存取的最大Event数
channelfullcount10Channel full次数,达到该次数后发送告警

Kafka Channel 配置:

Kafka Channel使用kafka集群缓存数据,Kafka提供高可用、多副本,以防Flume或Kafka Broker崩溃,Channel中的数据会立即被Sink消费

参数默认值描述
typeorg.apache.flume.channel.kafka.KafkaChannel类型,需配置为“org.apache.flume.channel.kafka.KafkaChannel”
kafka.bootstrap.servers-kafka broker列表
kafka.topicflume-channelChannel用来缓存数据的topic
kafka.consumer.group.idflumeKafka消费者组ID
parseAsFlumeEventtrue是否解析为Flume event
migrateZookeeperOffsetstrue当Kafka没有存储offset时,是否从ZooKeeper中查找,并提交到Kafka
kafka.consumer.auto.offset.resetlatest当没有offset记录时,从指定的位置消费数据
kafka.producer.security.protocolSASL_PLAINTEXTKafka生产者安全协议
kafka.consumer.security.protocolSASL_PLAINTEXTKafka消费者安全协议。

-------------------------------常用Sink配置---------------------------
HDFS Sink 配置:

将数据写入HDFS

参数默认值描述
channel-与之相连的Channel
typehdfs类型,需配置为“hdfs”
monTime0(不开启)线程监控阈值,更新时间大于阈值时重新启动该Sink,单位:秒
hdfs.path-HDFS路径
hdfs.inUseSuffix.tmp正在写入的HDFS文件后缀
hdfs.rollInterval30按时间滚动文件,单位:秒
hdfs.rollSize1024按大小滚动文件,单位:字节
hdfs.rollCount10按Event个数滚动文件
hdfs.idleTimeout0自动关闭空闲文件超时时间,单位:秒
hdfs.batchSize1000每次写入HDFS的Event个数
hdfs.kerberosPrincipal-认证HDFS的Kerberos用户名,未启用Kerberos认证集群不配置
hdfs.kerberosKeytab-认证HDFS的Kerberos keytab路径,未启用Kerberos认证集群不配置
hdfs.fileCloseByEndEventtrue收到最后一个Event时是否关闭文件
hdfs.batchCallTimeout-每次写入HDFS超时控制时间,单位:毫秒。
当不配置此参数时,对每个Event写入HDFS进行超时控制。
当“hdfs.batchSize”大于0时,配置此参数可以提升写入HDFS性能。
说明:
“hdfs.batchCallTimeout”设置多长时间需要考虑“hdfs.batchSize”的大小,
“hdfs.batchSize”越大,“hdfs.batchCallTimeout”也要调整更长时间,设置过短时间容易导致数据写入HDFS失败。
serializer.appendNewlinetrue将一个Event写入HDFS后是否追加换行符(’\n’),如果追加该换行符,该换行符所占用的数据量指标不会被HDFS Sink统计

Kafka Sink 配置:

Kafka Sink将数据写入到Kafka中

参数默认值描述
channel-与之相连的Channel
typeorg.apache.flume.sink.kafka.KafkaSink类型,需配置为“org.apache.flume.sink.kafka.KafkaSink”
kafka.bootstrap.servers-Kafkabrokers列表,多个用英文逗号分隔
monTime0(不开启)线程监控阈值,更新时间大于阈值时重新启动该Sink,单位:秒
kafka.topicdefault-flume-topic数据写入的topic
flumeBatchSize10000每次写入Kafka的Event个数
kafka.security.protocolSASL_PLAINTEXTKafka安全协议,未启用Kerberos认证集群下须配置为“PLAINTEXT”
kafka.kerberos.domain.name-Kafka Domain名称。安全集群必填

HBase Sink 配置:

HBase Sink将数据写入到HBase中

参数默认值描述
channel-与之相连的Channel
typehbase类型,需配置为“hbase”
table-HBase表名称
monTime0(不开启)线程监控阈值,更新时间大于阈值时重新启动该Sink,单位:秒
columnFamily-HBase列族名称
batchSize1000每次写入HBase的Event个数
kerberosPrincipal-认证HBase的Kerberos用户名,未启用Kerberos认证集群不配
kerberosKeytab-认证HBase的Kerberos keytab路径,未启用Kerberos认证集群不配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值