最全Flume常⽤配置⽂件详情解析
东南方有哪些城市Flume的常⽤配置项
注:以下配置项均为常见配置项,查询详细配置项可以访问 。
1、Source配置项(常见配置项)
1.1 Avro Source
不同主机上的Agent通过⽹络传输数据可使⽤的Source,⼀般是接受Avro client的数据,或和是上⼀级Agent的Avro Sink成对存在。
配置项名称默认值描述
Channel—
type—组件类型名称,必须为avro
bind—要监听的主机名或IP地址
port—要绑定的端⼝号
threads—产⽣的最⼤⼯作线程数
ipFilterRules—使⽤此配置定义N个netty ipFilter模式规则。
selector.*
interceptors—列表
interceptors.*
compression-type none可设置为“none” 或 “deflate”. 压缩类型需要和AvroSource匹配
1.2 NetCat Source
NetCat Source可以使⽤TCP和UDP两种协议⽅式,使⽤⽅法基本相同,通过监听指定的IP和端⼝来传输数据,它会将监听到的每⼀⾏数据转化成⼀个Event写⼊到Channel中。
配置项名称默认值描述
channels—
type—类型指定为:netcat
bind—绑定机器名或IP地址
port—端⼝号
max-line-length512⼀⾏的最⼤字节数
ack-every-event true对成功接受的Event返回OK
selector.*选择器相关参数
interceptors—列表,多个以空格分隔
interceptors.*相关参数
1.3 Exec Source
Exec source通过执⾏给定的Unix命令的传输结果数据,如,cat,tail -F等,实时性⽐较⾼,但是⼀旦Agent进程出现问题,可能会导致数据的丢失。
配置项名称默认值描述
channels
type_类型指定为:exec
command–需要去执⾏的命令
shell_运⾏命令的shell脚本⽂件
restartThrottle10000尝试重启的超时时间
restart false如果命令执⾏失败,是否重启
logStdErr false是否记录错误⽇志
batchSize20批次写⼊channel的最⼤⽇志数量
batchTimeout3000批次写⼊数据的最⼤等待时间(毫秒)
selector.*选择器其他参数
interceptors–列表,多个空格分隔
interceptors.*
1.4 Spooling Directory Source
通过监控⼀个⽂件夹将新增⽂件内容转换成Event传输数据,特点是不会丢失数据,使⽤Spooling Directory Source需要注意的两点是,1)不能对被监控的⽂件夹下的新增的⽂件做出任何更改,2)新增到监控⽂件夹的⽂件名称必须是唯⼀的。由于是对整个新增⽂件的监控,Spooling Directory Source的实时性相对较低,不过可以采⽤对⽂件⾼粒度分割达到近似实时
配置项名称默认值描述
channels
type_类型指定:spooldir.
spoolDir–被监控的⽂件夹⽬录
西安奔驰女车主fileSuffix.COMPLETED完成数据传输的⽂件后缀标志
deletePolicy never删除已经完成数据传输的⽂件时间:never or immediate
fileHeader false是否在header中添加⽂件的完整路径信息
fileHeaderKey file如果header中添加⽂件的完整路径信息时key的名称
basenameHeader false是否在header中添加⽂件的基本名称信息
basenameHeaderKey basename如果header中添加⽂件的基本名称信息时key的名称includePattern^.*$使⽤正则来匹配新增⽂件需要被传输数据的⽂件
ignorePattern^$使⽤正则来忽略新增的⽂件
trackerDir.flumespool存储元数据信息⽬录
consumeOrder oldest⽂件消费顺序:oldest, youngest and random.
maxBackoff4000如果channel容量不⾜,尝试写⼊的超时时间,如果仍然不能写⼊,则会抛出ChannelException
batchSize100批次处理粒度
inputCharset UTF-8输⼊码表格式
decodeErrorPolicy FAIL遇到不可解码字符后的处理⽅式:FAIL,REPLACE,pe replicating选择器类型:replicating or multiplexing
selector.*选择器其他参数
interceptors—列表,空格分隔
interceptors.*–
配置项名称默认值描述
1.5 Taildir Source
可以实时的监控指定⼀个或多个⽂件中的新增内容,由于该⽅式将数据的偏移量保存在⼀个指定的json⽂件中,即使在Agent挂掉或被kill也不会有数据的丢失,需要注意的是,该Source不能在Windows上使⽤。
配置项名称默认值描述
channels-
type-指定类型:TAILDIR.
filegroups-⽂件组的名称,多个空格分隔filegroups.< filegroupName>-被监控⽂件的绝对路径
positionFile~/.flume/taildir_position.json存储数据偏移量路径headers.< filegroupName>.< headerKey>-Header key的名称
byteOffsetHeader false是否添加字节偏移量到key为‘byteoffset’值中skipToEnd false当偏移量不能写⼊到⽂件时是否跳到⽂件结尾
idleTimeout120000关闭没有新增内容的⽂件超时时间(毫秒writePosInterval3000在positionfile 写⼊每⼀个⽂件lastposition的时间间隔batchSize100批次处理⾏数
fileHeader false是否添加header存储⽂件绝对路径
fileHeaderKey file fileHeader启⽤时,使⽤的key
1.6 Thrift Source
监听节省端⼝并从外部节省客户端流接收事件。当与另⼀个(前⼀个跃点)Flume代理上的内置ThriftSink配对时,它可以创建分层的集合拓扑。通过启⽤kerberos⾝份验证,可以将Thrift source配置为以安全模式启动。代理-主体和代理-keytab是Thrift源⽤于向kerberos KDC进⾏⾝份验证的属性。所需属性以粗体显⽰。
配置项名称默认
描述
Channel-
type-组件类型名称,必须为Thrift
bind–要监听的主机名或IP地址
port-要绑定到的端⼝#
threads-产⽣的最⼤⼯作线程数
selector.*
interceptors-空格分隔的列表
interceptors.*–
ssl false将其设置为true以启⽤SSL加密。您还必须指定“密钥存储库”和“密钥存储库-密码”。
keystore这是Java密钥存储库⽂件的路径。SSL所必需的。
keystore-
password
–Java密钥存储库的密码。SSL所必需的。
keystore-
type
读取配置文件失败
JKS Java密钥存储库的类型。可以是“JKS”或“PKCS12”。
exclude-protocols SSLv3要排除的SSL/TLS协议的空格分隔列表。SSLv3总是被排除在外除了指定的协议。
kerberos false
设置为true以启⽤kerberos⾝份验证。在kerberos模式下,成功的⾝份验证需要代理-主体和代理-keytab。在安全模式下的节约源将只接受
来⾃启⽤kerberos并成功地通过kerberos KDC⾝份验证的节约客户机的连接。
agent-principal -节约源⽤于对kerberos KDC进⾏⾝份验证的kerberos主体。
agent-keytab
-节约源与代理-主体组合使⽤的⽤于向kerberos KDC进⾏⾝份验证的keytab位置。
配置项名称默认值
描述1.7 Kafka Source
Kafka Source是⼀个Apache Kafka消费者,它读取来⾃Kafka主题的消息。如果有多个Kafka源在运⾏,可以将它们配置为相同的使⽤者组,这样每个使⽤者都将为主题读取⼀组惟⼀的分区。
配置项名称默认值描述
channels -type
-组件类型名需要为org.apache.flume.source.kafka.KafkaSource
kafka.bootstrap.servers -源使⽤的Kafka集中的代理列表
flume 消费者体的唯⼀标识。在多个源或代理中设置相同的id表明它们属于同⼀使⽤者组
<
-
定义源订阅的主题集的正则表达式。这个属性⽐kafka具有更⾼的优先级。主题和超越kafka,如果存在主题
batchSize 1000在⼀个批处理中写⼊信道的最⼤消息数
batchDurationMillis
1000
最⼤时间(在ms)之前批将被写⼊通道批将被写⼊第⼀个⼤⼩和时间将达到。
backoffSleepIncrement 1000
当Kafka主题为空时触发的初始和增量等待时间。等待时间将减少空洞的kafka主题的侵略性脉冲。对于摄⼊⽤例
来说,⼀秒是理想的,但是对于使⽤的低延迟操作,可能需要更低的值。
maxBackoffSleep 5000
当Kafka主题显⽰为空时触发的最⼤等待时间。对于摄⼊⽤例,5秒是理想的,但是对于使⽤的
低延迟操
作,可能需要更低的值。
useFlumeEventFormat
false
默认事件作为字节从卡夫卡的话题直接进⼊⾝体。设置为true以Flume Avro⼆进制格式读取事件。与KafkaSink
上的相同属性或Kafka通道上的parseAsFlumeEvent属性⼀起使⽤,这将保留在⽣成端发送的所有Flume头⽂
件。
migrateZookeeperOffsets
true
当没有到Kafka存储的偏移量时,在Zookeeper中查偏移量并将其提交给Kafka。这应该是真实的,
以⽀持
⽆缝Kafka客户端迁移从旧版本的Flume。迁移后可以将其设置为false,但通常不需要这样做。如果没有发现Zookeeper偏移量,则Kafka配置Kafka .consumer.auto.offset。reset定义如何处理偏移量。查看Kafka⽂档
了解详细信息
SASL_PLAINTEXT, SASL_SSL或SSL如果写信给卡夫卡使⽤某种程度的安全。参见下⾯的附加信息安全设置。
more consumer security props
如果使⽤sasl_明⽂,则SASL_SSL或SSL引⽤Kafka安全性来获得需要在消费者上设置的其他属性。Other Kafka Consumer
打印机共享Properties
这些属性⽤于配置Kafka使⽤者。可以使⽤Kafka⽀持的任何消费者属性。惟⼀的要求是在属性名前加上前缀
弃⽤属性
配置项名称默认值描述topic -使⽤pics
groupId -使⽤up.id
zookeeperConnect
-从0.9.x开始kafka消费者客户端不再⽀持它。使⽤kafka.bootstrap。服务器与kafka集建⽴连接
1.8 Sequence Generator Source
⼀个简单的序列⽣成器,它通过⼀个计数器连续地⽣成事件,计数器从0开始,递增1,并在totalEvents停⽌。重试的时候⽆法发送事件通道。主要⽤于测试。所需属性以粗体显⽰。
配置项名称默认值描述
channels-
type-组件类型名称,需要seq
罗杰海贼团selector.*replicating取决于选择器。类型值
interceptors-空格分隔的列表的
interceptors.*
batchSize1
totalEvents Long.MAX_VALUE long类型最⼤值,由源发送的唯⼀事件数。
1.9 HTTP Source
源通过HTTP POST和GET接受⽔槽事件。GET只能⽤于实验。HTTP请求被⼀个必须实现HTTPSourceHandler接⼝的可插⼊“处理程序”转换为flume事件。这个处理程序接受⼀个HttpServletRequest并返回⼀个flume事件列表。从⼀个Http请求处理的所有事件都在⼀个事务中提交
给通道,从⽽提⾼了通道(如⽂件通道)的效率。如果处理程序抛出异常,该源将返回HTTP状态为400。如果通道已满,或源⽆法向通道追加事件,则源将返回HTTP 503 -暂时不可⽤状态。
在⼀个post请求中发送的所有事件被视为⼀个批处理,并插⼊到⼀个事务中的通道中。
配置项名称默认值描述
母亲节发多少红包给妈妈好
type-组件类型名称,需要是http
port-应该绑定到的端⼝。
bind0.0.0.0监听的主机名或IP地址
handler org.apache.flume.source.http.JSONHandler处理程序类的FQCN。
handler.*-处理程序的配置参数
selector.*取决于选择器。类型值
interceptors空格分隔的列表的
interceptors.*–
enableSSL false将属性设置为true,以启⽤SSL。HTTP源不⽀持SSLv3。
excludeProtocols SSLv3要排除的SSL/TLS协议的空格分隔列表。SSLv3总是被排除在外。
keystore–密钥存储库的位置,包括密钥存储库⽂件名
keystorePassword Keystore password
2、Channels 配置项(常见配置项)
2.1 Memory Channel
Memory Channel是使⽤内存来存储Event,使⽤内存的意味着数据传输速率会很快,但是当Agent挂掉后,存储在Channel中的数据将会丢失。
配置项名称默
描述
type-组件名称,必须为 memory
capacity100channel最⼤能存储的event数量transactionCapacity300每次事务中能从source中拉取或下沉到sink的最⼤event数量keep-alive3添加