最全Flume常用配置文件详情解析

最全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.type
selector.*
interceptors拦截器列表
interceptors.*
compression-typenone可设置为“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-eventtrue对成功接受的Event返回OK
selector.typereplicating选择器类型replicating or multiplexing
selector.*选择器相关参数
interceptors拦截器列表,多个以空格分隔
interceptors.*拦截器相关参数

1.3 Exec Source

Exec source通过执行给定的Unix命令的传输结果数据,如,cat,tail -F等,实时性比较高,但是一旦Agent进程出现问题,可能会导致数据的丢失。

配置项名称默认值描述
channels
type_类型指定为:exec
command需要去执行的命令
shell_运行命令的shell脚本文件
restartThrottle10000尝试重启的超时时间
restartfalse如果命令执行失败,是否重启
logStdErrfalse是否记录错误日志
batchSize20批次写入channel的最大日志数量
batchTimeout3000批次写入数据的最大等待时间(毫秒)
selector.typereplicating选择器类型replicating or multiplexing
selector.*选择器其他参数
interceptors拦截器列表,多个空格分隔
interceptors.*

1.4 Spooling Directory Source

通过监控一个文件夹将新增文件内容转换成Event传输数据,特点是不会丢失数据,使用Spooling Directory Source需要注意的两点是,1)不能对被监控的文件夹下的新增的文件做出任何更改,2)新增到监控文件夹的文件名称必须是唯一的。由于是对整个新增文件的监控,Spooling Directory Source的实时性相对较低,不过可以采用对文件高粒度分割达到近似实时

配置项名称默认值描述
channels
type_类型指定:spooldir.
spoolDir被监控的文件夹目录
fileSuffix.COMPLETED完成数据传输的文件后缀标志
deletePolicynever删除已经完成数据传输的文件时间:never or immediate
fileHeaderfalse是否在header中添加文件的完整路径信息
fileHeaderKeyfile如果header中添加文件的完整路径信息时key的名称
basenameHeaderfalse是否在header中添加文件的基本名称信息
basenameHeaderKeybasename如果header中添加文件的基本名称信息时key的名称
includePattern^.*$使用正则来匹配新增文件需要被传输数据的文件
ignorePattern^$使用正则来忽略新增的文件
trackerDir.flumespool存储元数据信息目录
consumeOrderoldest文件消费顺序:oldest, youngest and random.
maxBackoff4000如果channel容量不足,尝试写入的超时时间,如果仍然不能写入,则会抛出ChannelException
batchSize100批次处理粒度
inputCharsetUTF-8输入码表格式
decodeErrorPolicyFAIL遇到不可解码字符后的处理方式:FAIL,REPLACE,IGNORE
selector.typereplicating选择器类型: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的名称
byteOffsetHeaderfalse是否添加字节偏移量到key为‘byteoffset’值中
skipToEndfalse当偏移量不能写入到文件时是否跳到文件结尾
idleTimeout120000关闭没有新增内容的文件超时时间(毫秒
writePosInterval3000在positionfile 写入每一个文件lastposition的时间间隔
batchSize100批次处理行数
fileHeaderfalse是否添加header存储文件绝对路径
fileHeaderKeyfilefileHeader启用时,使用的key

1.6 Thrift Source

监听节省端口并从外部节省客户端流接收事件。当与另一个(前一个跃点)Flume代理上的内置ThriftSink配对时,它可以创建分层的集合拓扑。通过启用kerberos身份验证,可以将Thrift source配置为以安全模式启动。代理-主体和代理-keytab是Thrift源用于向kerberos KDC进行身份验证的属性。所需属性以粗体显示。

配置项名称默认值描述
Channel-
type-组件类型名称,必须为Thrift
bind要监听的主机名或IP地址
port-要绑定到的端口#
threads-产生的最大工作线程数
selector.type
selector.*
interceptors-空格分隔的拦截器列表
interceptors.*
sslfalse将其设置为true以启用SSL加密。您还必须指定“密钥存储库”和“密钥存储库-密码”。
keystore这是Java密钥存储库文件的路径。SSL所必需的。
keystore-passwordJava密钥存储库的密码。SSL所必需的。
keystore-typeJKSJava密钥存储库的类型。可以是“JKS”或“PKCS12”。
exclude-protocolsSSLv3要排除的SSL/TLS协议的空格分隔列表。SSLv3总是被排除在外除了指定的协议。
kerberosfalse设置为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集群中的代理列表
kafka.consumer.group.idflume消费者群体的唯一标识。在多个源或代理中设置相同的id表明它们属于同一使用者组
kafka.topics以逗号分隔的主题从kafka消费者将读取消息。
kafka.topics.regex-定义源订阅的主题集的正则表达式。这个属性比kafka具有更高的优先级。主题和超越kafka,如果存在主题
batchSize1000在一个批处理中写入信道的最大消息数
batchDurationMillis1000最大时间(在ms)之前批将被写入通道批将被写入第一个大小和时间将达到。
backoffSleepIncrement1000当Kafka主题为空时触发的初始和增量等待时间。等待时间将减少空洞的kafka主题的侵略性脉冲。对于摄入用例来说,一秒是理想的,但是对于使用拦截器的低延迟操作,可能需要更低的值。
maxBackoffSleep5000当Kafka主题显示为空时触发的最大等待时间。对于摄入用例,5秒是理想的,但是对于使用拦截器的低延迟操作,可能需要更低的值。
useFlumeEventFormatfalse默认事件作为字节从卡夫卡的话题直接进入身体。设置为true以Flume Avro二进制格式读取事件。与KafkaSink上的相同属性或Kafka通道上的parseAsFlumeEvent属性一起使用,这将保留在生成端发送的所有Flume头文件。
migrateZookeeperOffsetstrue当没有找到Kafka存储的偏移量时,在Zookeeper中查找偏移量并将其提交给Kafka。这应该是真实的,以支持无缝Kafka客户端迁移从旧版本的Flume。迁移后可以将其设置为false,但通常不需要这样做。如果没有发现Zookeeper偏移量,则Kafka配置Kafka .consumer.auto.offset。reset定义如何处理偏移量。查看Kafka文档了解详细信息
kafka.consumer.security.protocolPLAINTEXTSASL_PLAINTEXT, SASL_SSL或SSL如果写信给卡夫卡使用某种程度的安全。参见下面的附加信息安全设置。
more consumer security props如果使用sasl_明文,则SASL_SSL或SSL引用Kafka安全性来获得需要在消费者上设置的其他属性。
Other Kafka Consumer Properties这些属性用于配置Kafka使用者。可以使用Kafka支持的任何消费者属性。惟一的要求是在属性名前加上前缀kafka.consumer。例如:kafka.consumer.auto.offset.reset

弃用属性

配置项名称默认值描述
topic-使用kafka.topics
groupId-使用kafka.consumer.group.id
zookeeperConnect-从0.9.x开始kafka消费者客户端不再支持它。使用kafka.bootstrap。服务器与kafka集群建立连接

1.8 Sequence Generator Source

一个简单的序列生成器,它通过一个计数器连续地生成事件,计数器从0开始,递增1,并在totalEvents停止。重试的时候无法发送事件通道。主要用于测试。所需属性以粗体显示。

配置项名称默认值描述
channels-
type-组件类型名称,需要seq
selector.type-复制或多路复用
selector.*replicating取决于选择器。类型值
interceptors-空格分隔的列表的拦截器
interceptors.*
batchSize1
totalEventsLong.MAX_VALUElong类型最大值,由源发送的唯一事件数。

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地址
handlerorg.apache.flume.source.http.JSONHandler处理程序类的FQCN。
handler.*-处理程序的配置参数
selector.typereplicating复制或多路复用
selector.*取决于选择器。类型值
interceptors空格分隔的列表的拦截器
interceptors.*
enableSSLfalse将属性设置为true,以启用SSL。HTTP源不支持SSLv3。
excludeProtocolsSSLv3要排除的SSL/TLS协议的空格分隔列表。SSLv3总是被排除在外。
keystore密钥存储库的位置,包括密钥存储库文件名
keystorePasswordKeystore password

2、Channels 配置项 (常见配置项)

2.1 Memory Channel

Memory Channel是使用内存来存储Event,使用内存的意味着数据传输速率会很快,但是当Agent挂掉后,存储在Channel中的数据将会丢失。

配置项名称默认值描述
type-组件名称,必须为 memory
capacity100channel最大能存储的event数量
transactionCapacity300每次事务中能从source中拉取或下沉到sink的最大event数量
keep-alive3添加
byteCapacityBufferPercentage20定义byteCapacityBuffer 的占比,它与 byteCapacity之和为100%,byteCapacity见下栏
byteCapacitysee 描述在这个channel中允许存放的最大字节数 这个字节数只计算event body,这也是需要提供 byteCapacityBufferPercentage 配置参数的原因。 默认为JVM可用最大内存的80% (即通过命令行传递的-Xmx值的80%)。 注意,如果一个agent里面包含了多个channel,channel里面又包含了多个相同的events,那么这些events会被重复计算。 将它设为 0 将会导致这个值强制设定为200GB的容量

2.2 JDBC Channel

事件存储在由数据库支持的持久存储中。JDBC通道目前支持嵌入式Derby。这是一个持久的通道,对于可恢复性非常重要的流来说非常理想。

配置项名称默认值描述
type组件类型名需要是jdbc
db.typeDERBY数据库供应商,需要是DERBY。
driver.classorg.apache.derby.jdbc.EmbeddedDriver用于供应商的JDBC驱动程序的类
driver.url(constructed from other properties)JDBC连接URL
db.username“sa”数据库连接的用户id
db.passworddb连接密码
connection.properties.fileJDBC连接属性文件的路径
create.schematrue如果为真,则创建db模式
create.indextrue创建索引以加速查找
create.foreignkeytrue
transaction.isolation“READ_COMMITTED”db会话的隔离级别:READ_UNCOMMITTED, READ_COMMITTED, SERIALIZABLE, REPEATABLE_READ
maximum.connections10允许db的最大连接数
maximum.capacity0 (unlimited)通道中事件的最大数量
sysprop.*供应商特定属性
sysprop.user.home存储嵌入式Derby数据库的主路径

2.3 kafka Channel

事件存储在Kafka集群中(必须单独安装)。Kafka提供了高可用性和复制,因此在代理或Kafka代理崩溃时,其他接收器可以立即使用这些事件

配置项名称默认值描述
type-组件类型名,需要是org.apache.flume.channel. kafkar . kafkachannel
kafka.bootstrap.servers-通道使用的Kafka集群中的代理列表这可以是代理列表的一部分,但是我们建议对于HA至少有两个。格式是用逗号分隔的主机名列表:端口
kafka.topicflume-channe频道将使用kafka主题
kafka.consumer.group.idflume通道用于向Kafka注册的消费者组ID。多个通道必须使用相同的主题和组,以确保当一个代理失败时,另一个代理可以获得数据。注意,具有相同ID的非通道使用者可能会导致数据丢失。
parseAsFlumeEventtrue期望在通道中使用FlumeEvent模式的Avro datums。如果Flume source写入到该频道,则为true;如果其他生产者写入到该频道使用的主题,则为false。可以使用org.apache.flume.source.avro在Flume外部解析给Kafka的Flume源消息。AvroFlumeEvent flume-ng-sdk提供的工件
migrateZookeeperOffsetstrue当没有找到Kafka存储的偏移量时,在Zookeeper中查找偏移量并将其提交给Kafka。这应该是真实的,以支持无缝Kafka客户端迁移从旧版本的Flume。迁移后可以将其设置为false,但通常不需要这样做。如果没有找到Zookeeper偏移量,则kafkar .consumer.auto.offset。重置配置定义了如何处理偏移量。
pollTimeout500在使用者的“poll()”调用中等待的时间(以毫秒为单位)。https://kafka.apache.org/090/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html调查(长)
defaultPartitionId-指定此通道中要发送到的所有事件的Kafka分区ID(整数),除非partitionIdHeader覆盖。默认情况下,如果没有设置此属性,则事件将由Kafka生成器的分词器分发——如果指定,包括按键分发(或者由Kafka .partitioner.class指定的分词器分发)。
partitionIdHeader设置后,生成器将从事件头获取使用此属性值命名的字段的值,并将消息发送到主题的指定分区。如果该值表示无效分区,则通道将不接受该事件。如果头值存在,则此设置将覆盖defaultPartitionId。
kafka.consumer.auto.offset.resetlatest当没有初始偏移kafka或如果当前偏移量不存在服务器上的任何更多的(例如,因为数据已被删除):最早:自动重置抵消最早抵消最新:自动重置抵消最新抵消没有:抛出异常的消费者如果没有找到以前的抵消消费者集团其他:消费者抛出例外。
kafka.producer.security.protocolPLAINTEXTSASL_PLAINTEXT, SASL_SSL或SSL如果写信给卡夫卡使用某种程度的安全。参见下面的附加信息安全设置。
kafka.consumer.security.protocolPLAINTEXTkafka.producer.security一样。协议,但读取/消费从kafka
more producer/consumer security props-如果使用sasl_明文,则SASL_SSL或SSL引用Kafka安全性来获得需要在生产者/消费者上设置的其他属性。

弃用模式

配置项名称默认值描述
brokerList-通道使用的Kafka集群中的代理列表这可以是代理列表的一部分,但是我们建议对于HA至少有两个。格式是用逗号分隔的主机名列表:端口
topicflume-channel使用kafka.topic
groupIdflume使用kafka.consumer.group.id
readSmallestOffsetfalse使用kafka.consumer.auto.offset.reset

2.4 File Channel

File Channel使用磁盘来存储Event,速率相对于Memory Channel较慢,但数据不会丢失。

配置项名称默认值描述
type组件名称,必须为 file.
checkpointDir~/.flume/file-channel/checkpointcheckpoint文件的存储目录
useDualCheckpointsfalse备份checkpoint文件,如果它为 true, backupCheckpointDir 必须 被设置
backupCheckpointDir用于备份的checkpoint目录,它 必须不能 与原checkpoint目录一样
dataDirs~/.flume/file-channel/data‘,’分隔的目录列表,用于存储日志文件。在不同的磁盘上使用多个目录可以提高filechannel的性能
transactionCapacity10000channel支持的最大事务数
checkpointInterval30000checkpoint之间的最大时间间隔
maxFileSize2146435071单个日志文件最大的字节数
minimumRequiredSpace524288000最少需要的空闲空间(以字节为单位)。为了避免数据损坏,当空闲空间低于此值时,filechannel将停止接受take/put请求
capacity1000000单个channel存储的最大容量
keep-alive3一个put操作执行的最大时间
checkpointOnClosetrue在关闭时是否创建检查点,如果设置为true,可以加速filechannel的后续启动。

3、Sink 配置项 (常见配置项)

3.1 Logger Sink

Logger Sink以INFO 级别的日志记录到log日志中,这种方式通常用于测试。

配置项名称默认值描述
channel
type类型指定:logger
maxBytesToLog16能够记录的最大Event Body字节数

3.2 HDFS Sink

Sink数据到HDFS,目前支持text 和 sequence files两种文件格式,支持压缩,并可以对数据进行分区,分桶存储。’

配置项名称默认值描述
channel
type指定类型:hdfs
hdfs.pathHDFS的路径,eg hdfs://namenode/flume/webdata/
hdfs.filePrefixFlumeData保存数据文件的前缀名
hdfs.fileSuffix保存数据文件的后缀名
hdfs.inUsePrefix临时写入的文件前缀名
hdfs.inUseSuffix.tmp临时写入的文件后缀名
hdfs.rollInterval30间隔多长将临时文件滚动成最终目标文件,单位:秒, 如果设置成0,则表示不根据时间来滚动文件
hdfs.rollSize1024当临时文件达到多少(单位:bytes)时,滚动成目标文件, 如果设置成0,则表示不根据临时文件大小来滚动文件
hdfs.rollCount10当 events 数据达到该数量时候,将临时文件滚动成目标文件,如果设置成0,则表示不根据events数据来滚动文件
hdfs.idleTimeout0当目前被打开的临时文件在该参数指定的时间(秒)内, 没有任何数据写入,则将该临时文件关闭并重命名成目标文件
hdfs.batchSize100每个批次刷新到 HDFS 上的 events 数量
hdfs.codeC文件压缩格式,包括:gzip, bzip2, lzo, lzop, snappy
hdfs.fileTypeSequenceFile文件格式,包括:SequenceFile, DataStream,CompressedStre, 当使用DataStream时候,文件不会被压缩,不需要设置hdfs.codeC; 当使用CompressedStream时候,必须设置一个正确的hdfs.codeC值;
hdfs.maxOpenFiles5000最大允许打开的HDFS文件数,当打开的文件数达到该值,最早打开的文件将会被关闭
hdfs.minBlockReplicasHDFS副本数,写入 HDFS 文件块的最小副本数。 该参数会影响文件的滚动配置,一般将该参数配置成1,才可以按照配置正确滚动文件
hdfs.writeFormatWritable写 sequence 文件的格式。包含:Text, Writable(默认)
hdfs.callTimeout10000执行HDFS操作的超时时间(单位:毫秒)
hdfs.threadsPoolSize10hdfs sink 启动的操作HDFS的线程数
hdfs.rollTimerPoolSize1hdfs sink 启动的根据时间滚动文件的线程数
hdfs.kerberosPrincipalHDFS安全认证kerberos配置
hdfs.kerberosKeytabHDFS安全认证kerberos配置
hdfs.proxyUser代理用户
hdfs.roundfalse是否启用时间上的”舍弃”
hdfs.roundValue1时间上进行“舍弃”的值
hdfs.roundUnitsecond时间上进行”舍弃”的单位,包含:second,minute,hour
hdfs.timeZoneLocal Time时区。
hdfs.useLocalTimeStampfalse是否使用当地时间
hdfs.closeTries 0Numberhdfs sink 关闭文件的尝试次数; 如果设置为1,当一次关闭文件失败后,hdfs sink将不会再次尝试关闭文件,这个未关闭的文件将会一直留在那,并且是打开状态; 设置为0,当一次关闭失败后,hdfs sink会继续尝试下一次关闭,直到成功
hdfs.retryInterval180hdfs sink 尝试关闭文件的时间间隔, 如果设置为0,表示不尝试,相当于于将hdfs.closeTries设置成1
serializerTEXT序列化类型
serializer.*

3.3 Hive Sink

此接收器将包含分隔文本或JSON数据的事件直接流到Hive表或分区中。事件是使用Hive事务编写的。只要将一组事件提交到Hive,它们就会立即对Hive查询可见。flume将流到的分区既可以预先创建,也可以选择在缺少分区时创建它们。来自传入事件数据的字段被映射到Hive表中的相应列。

配置项名称默认值描述
channel
type组件类型名称,需要为hive
hive.metastoreHive metastore URI(例如thrift://a.b.com:9083)
hive.database数据库名称
hive.table表名称
hive.partition逗号分隔标识要写入的分区的分区值列表。可能包含转义序列。E。g:如果表按(continent: string, country:string, time:string)分区,那么’ Asia,India,2014-02-26-01-21 '将表示continent=Asia,country=India,time=2014-02-26-01-21
hive.txnsPerBatchAsk100Hive像Flume一样向流客户端授予一批事务而不是单个事务。此设置配置每个事务批处理所需的事务数量。来自单个批处理的所有事务的数据最终会出现在单个文件中。Flume将在批处理中的每个事务中写入批大小事件的最大值。此设置与batchSize一起提供了对每个文件大小的控制。注意这些文件到最终蜂巢将透明地紧凑的大文件。
heartBeatInterval240发送到Hive的连续心跳之间的时间间隔(以秒为单位),以防止未使用的事务过期。将此值设置为0可禁用心跳。
autoCreatePartitionstrueFlume将自动创建流到的必要的Hive分区
batchSize15000单个Hive事务中能写入的最大event数量
maxOpenConnections500只允许此数目的打开连接。如果超过此数字,则关闭最近最少使用的连接。
callTimeout10000(毫秒)Hive & HDFS I/O操作的超时,比如openTxn、写、提交、中止。
serializerSerializer负责从事件中解析出字段,并将它们映射到hive表中的列。序列化器的选择取决于事件中数据的格式。支持序列化器:分隔和JSON
roundUnitminute四舍五入值的单位——second, minute 或 hour.
roundValue1四舍五入到该时间的最高倍数(在使用hive.roundUnit配置的单元中),小于当前时间
timeZoneLocal Time用于解析分区中的转义序列的时区名称,例如America/Los_Angeles。
useLocalTimeStampfalse在替换转义序列时使用本地时间(而不是事件头中的时间戳)。

3.4 Avro Sink

发送到此接收器的Flume事件被转换为Avro事件,并发送到配置的主机名/端口对。事件以配置的批大小批次从配置的通道获取。

配置项名称默认值描述
channel
type组件类型名,需要是avro。
hostname要绑定到的主机名或IP地址。
port要监听的端口
batch-size100要一起批处理以发送的事件数目
connect-timeout20000允许第一次(握手)请求的时间量(ms)。
request-timeout20000允许第一次请求之后的时间量(ms)。
reset-connection-intervanone重置到下一跳的连接之前的时间量。这将迫使Avro接收器重新连接到下一跳。这将允许接收在添加新主机时连接到硬件负载均衡器后的主机,而无需重新启动代理。
compression-typenone这可以是“none”或“deflate”。压缩类型必须与匹配的AvroSource的压缩类型匹配
compression-leve6压缩事件的压缩级别。0 =无压缩,1-9为压缩。数字越高压缩越多
sslfalse设置为true为此AvroSink启用SSL。在配置SSL时,您可以选择设置“信任库”、“信任库-密码”、“信任库-类型”,并指定是否设置“信任-所有证书”。
trust-all-certsfalse如果将此设置为true,则不会检查用于远程服务器(Avro源)的SSL服务器证书。不应该在生产环境中使用这种方法,因为它使攻击者更容易执行中间人攻击并“监听”加密连接
truststore自定义Java信任库文件的路径。Flume使用此文件中的证书权威信息来确定是否应该信任远程Avro源的SSL身份验证凭据。如果没有指定,将使用默认的Java JSSE证书权威文件(通常是Oracle JRE中的“jssecacerts”或“cacerts”)。
truststore-password指定信任存储库的密码
truststore-typeJKSJava信任存储的类型。可以是“JKS”或其他受支持的Java信任存储库类型。
exclude-protocolsSSLv3要排除的SSL/TLS协议的空格分隔列表。SSLv3总是被排除在外除了指定的协议。
maxIoWorkers2 * the number of available processors in the machineI/O工作线程的最大数目。这是在NettyAvroRpcClient NioClientSocketChannelFactory上配置的。

3.5 Thrift Sink

通过启用kerberos身份验证,可以将节约接收配置为以安全模式启动。要与在安全模式下启动的节省源通信,节省接收器也应该在安全模式下操作。客户机-主体和客户机-keytab是节省接收器用于对kerberos KDC进行身份验证的属性。服务器主体表示此接收器配置为以安全模式连接的节约源的主体。

配置项名称默认值描述
channe
type组件类型名称,需要thrift
hostname要绑定到的主机名或IP地址。
port要监听的端口#。
batch-size100要一起批处理以发送的事件数目。
connect-timeout20000允许第一次(握手)请求的时间量(ms)。
request-timeout20000允许第一次请求之后的时间量(ms)。
connection-reset-intervalnone重置到下一跳的连接之前的时间量。这将迫使节俭接收器重新连接到下一跳。这将允许接收在添加新主机时连接到硬件负载均衡器后的主机,而无需重新启动代理。
sslfalse设置为true为这个ThriftSink启用SSL。在配置SSL时,您可以选择设置“信任库”、“信任库-密码”和“信任库类型”
truststore自定义Java信任库文件的路径。Flume使用此文件中的证书权威信息来确定是否应该信任远程节约源的SSL身份验证凭据。如果没有指定,将使用默认的Java JSSE证书权威文件(通常是Oracle JRE中的“jssecacerts”或“cacerts”)。
truststore-password指定信任存储库的密码。
truststore-typeJKSJava信任存储的类型。可以是“JKS”或其他受支持的Java信任存储库类型。
exclude-protocolsSSLv3要排除的SSL/TLS协议的空格分隔列表
kerberosfalse设置为true以启用kerberos身份验证。在kerberos模式中,客户机-主体、客户机-keytab和服务器-主体是成功进行身份验证和与启用kerberos的节约源通信所必需的。
client-principal节约接收用于对kerberos KDC进行身份验证的kerberos主体。
client-keytab节约接收器与客户机-主体组合使用的用于对kerberos KDC进行身份验证的keytab位置。
server-principal节省源的kerberos主体,节省接收器被配置连接到该源。

3.6 File Roll Sink

在本地文件系统上存储事件。

配置项名称默认值描述
channel
type组件类型名需要是file_roll。
sink.directory将存储文件的目录
sink.pathManagerDEFAULT要使用的PathManager实现。
sink.pathManager.extension如果使用默认的PathManager,则为文件扩展名。
sink.pathManager.prefix如果使用默认的PathManager,要添加到文件名开头的字符串
sink.rollInterval30每30秒滚动一次文件。指定0将禁用滚动,并导致将所有事件写入单个文件。
sink.serializerTEXT其他可能的选项包括avro_event或EventSerializer实现的FQCN。构建器接口。
batchSize100

3.7 HBaseSinks

这个接收器将数据写入HBase。Hbase配置从类路径中遇到的第一个Hbase -site.xml中获取。一个实现由配置指定的HbaseEventSerializer的类用于将事件转换为HBase put和/或增量。然后将这些put和增量写入HBase。这个接收器提供了与HBase相同的一致性保证,HBase目前是行原子性。如果Hbase无法写入某些事件,接收将重播该事务中的所有事件。

HBaseSink支持写入数据来保护HBase。要写入以保护HBase,代理运行的用户必须对接收器配置为写入的表具有写权限。可以在配置中指定用于对KDC进行身份验证的主体和keytab。Flume代理的类路径中的HBase -site.xml必须将身份验证设置为kerberos(有关如何做到这一点的详细信息,请参阅HBase文档)。

为了方便起见,提供了两个带有水槽的序列化器。SimpleHbaseEventSerializer按原样将事件体写入HBase,并可选择在HBase中增加一列。这主要是一个示例实现。RegexHbaseEventSerializer基于给定的正则表达式分解事件体,并将每个部分写入不同的列中。

类型是FQCN: org.apache.flume.sink.hbase.HBaseSink。

3.7.1 HBaseSink

配置项名称默认值描述
channel
type组件类型名,需要是hbase
table在Hbase中要写入的表的名称。
columnFamilyHbase中要写入的列族。
zookeeperQuorum法定人数规范。这是属性hbase.zookeeper的值。在hbase-site.xml法定人数
znodeParent/hbase根区域的znode的基本路径。zookeeper.znode的价值。父母在hbase-site.xml
batchSize100每个txn要写入的事件数。
coalesceIncrementsfalse在每个批处理中,接收将多个增量合并到一个单元。如果对有限数量的单元进行多次递增,则可能会获得更好的性能。
serializerorg.apache.flume.sink.hbase.SimpleHbaseEventSerializer默认增量列= " iCol ",有效负载列= " pCol "。
serializer.*要传递给序列化器的属性。
kerberosPrincipal用于访问安全HBase的Kerberos用户主体
kerberosKeytab用于访问安全HBase的Kerberos keytab

3.7.2 AsyncHBaseSink

这个接收器使用异步模型将数据写入HBase。使用配置中指定的实现AsyncHbaseEventSerializer的类将事件转换为HBase put和/或增量。然后将这些put和增量写入HBase。这个接收器使用Asynchbase API来写入HBase。这个接收器提供了与HBase相同的一致性保证,HBase目前是行原子性。如果Hbase无法写入某些事件,接收将重播该事务中的所有事件。类型是FQCN: org.apache.flume.sink.hbase.AsyncHBaseSink

配置项名称默认值描述
channel
type组件类型名称,需要是asynchbase
table-在Hbase中要写入的表的名称。
zookeeperQuorum法定人数规范。这是属性hbase.zookeeper的值。在hbase-site.xml法定人数
znodeParent/hbase根区域的znode的基本路径。zookeeper.znode的价值。父母在hbase-site.xml
columnFamilyHbase中要写入的列族。
batchSize100每个txn要写入的事件数。
coalesceIncrementsfalse在每个批处理中,接收将多个增量合并到一个单元。如果对有限数量的单元进行多次递增,则可能会获得更好的性能。
timeout60000接收为事务中的所有事件从hbase等待ack的时间长度(以毫秒为单位)。
serializerorg.apache.flume.sink.hbase.SimpleAsyncHbaseEventSerializer
serializer.*要传递给序列化器的属性。

3.8 ElasticSearchSink

这个接收器将数据写入一个elasticsearch集群。默认情况下,事件将被编写,以便Kibana图形界面可以显示它们——就像logstash编写它们一样。

您的环境所需的elasticsearch和lucene-core jar文件必须放在Apache Flume安装的lib目录中。Elasticsearch要求客户端JAR的主版本与服务器的主版本匹配,并且两者都运行相同的JVM小版本。如果不正确,将出现serializationexception。选择所需的版本首先确定elasticsearch和JVM版本的版本目标集群正在运行。然后选择一个与主版本匹配的elasticsearch客户端库。0.19。客户端可以与0.19通话。x集群;0.20。x可以和0.20通话。0.90 x和。x可以0.90.x说话。一旦确定了elasticsearch版本,然后读取pomc .xml文件,以确定要使用的正确lucene-core JAR版本。运行ElasticSearchSink的Flume代理还应该匹配目标集群正在运行的JVM,直到小版本。

事件将每天写入一个新索引。名称将是-yyyy-MM-dd,其中是indexName参数。接收器将在UTC午夜开始写入新索引。

默认情况下,事件由ElasticSearchLogStashEventSerializer为elasticsearch序列化。可以用序列化器参数覆盖此行为。这个参数接受org.apache.flume.sink.elasticsearch的实现。ElasticSearchEventSerializer或org.apache.flume.sink.elasticsearch.ElasticSearchIndexRequestBuilderFactory。实现ElasticSearchEventSerializer被弃用,取而代之的是更强大的ElasticSearchIndexRequestBuilderFactory。

类型是FQCN: org.apache.flume.sink.elasticsearch.ElasticSearchSink

配置项名称默认值描述
channel
type组件类型名称,需要是org.apache.flume.sink.elasticsearch.ElasticSearchSink
hostNames用逗号分隔的主机名列表:端口,如果端口不存在,将使用默认端口’ 9300 ’
indexNameflume将添加日期的索引的名称。例如,“flume”->“flume-yyyy- mm -dd”支持任意头替换。%{header}替换为指定事件头的值
indexTypelogs文档索引的类型默认为“log”,支持任意头替换,例如。%{header}替换为指定事件头的值
clusterNameelasticsearch要连接的ElasticSearch集群的名称
batchSize100每个txn要写入的事件数。
ttlTTL在天,设置时将导致过期的文档被自动删除,如果没有设置文档将永远不会被自动删除。TTL只接受在早些时候的整数形式如a1.sinks.k1。ttl = 5,还限定符女士(毫秒),s(第二),m(分钟),h(小时)、d(天)和w(一周)。a1.sinks.k1示例。ttl = 5d将ttl设置为5天。请访问http://www.elasticsearch.org/guide/reference/mapping/ttl-field/获取更多信息。
serializerorg.apache.flume.sink.elasticsearch.ElasticSearchLogStashEventSerializer使用的ElasticSearchIndexRequestBuilderFactory或ElasticSearchEventSerializer。这两个类的实现都被接受,但是ElasticSearchIndexRequestBuilderFactory是首选。
serializer.*要传递给序列化器的属性。

注意,头替换可以方便地使用事件头的值来动态决定存储事件时要使用的indexName和indexType。在使用此特性时应谨慎,因为事件提交者现在已经控制了indexName和indexType。此外,如果使用了elasticsearch REST客户端,那么事件提交者就可以控制所使用的URL路径。

3.9 Kafka Sink

这是一个水槽实现,可以将数据发布到Kafka主题。目标之一是将水槽与Kafka集成,这样基于拉的处理系统就可以处理来自各种水槽源的数据。它目前支持Kafka 0.9。x系列发布。
这个版本的Flume(1.7.0)不再支持Kafka的旧版本(0.8.x)。

配置项名称默认值描述
type必须设置为org.apache.flume.sink.kafka.KafkaSink
kafka.bootstrap.serversKafka-Sink将连接到的代理列表,为了获得主题分区的列表,这可以是代理列表的一部分,但是我们建议对于HA至少要有两个。格式是用逗号分隔的主机名列表:端口
kafka.topicdefault-flume-topic在kafka中,信息将被发布的主题。如果配置了此参数,则消息将发布到此主题。如果事件标头包含“topic”字段,则该事件将发布到该主题,覆盖此处配置的主题。
flumeBatchSize100在一个批处理中要处理的消息数量。更大的批在增加延迟的同时提高吞吐量。
kafka.producer.acks1在消息被认为成功写入之前,必须确认多少个副本。可接受的值为0 (Never wait for acknowledgement)、1 (wait for leader only)、-1 (wait for all副本)。将这个值设置为-1,以避免在某些leader失败的情况下丢失数据。
useFlumeEventFormatfalse默认情况下,事件作为字节直接从事件体放到Kafka主题中。设置为true将事件存储为Flume Avro二进制格式。与KafkaSource上的相同属性或与Kafka通道上的parseAsFlumeEvent属性一起使用,这将为生产方保留所有水槽头。
defaultPartitionId指定此通道中要发送到的所有事件的Kafka分区ID(整数),除非partitionIdHeader覆盖。默认情况下,如果没有设置此属性,则事件将由Kafka生成器的分词器分发——如果指定,包括按键分发(或者由Kafka .partitioner.class指定的分词器分发)。
partitionIdHeader设置后,接收器将从事件头获取使用此属性值命名的字段的值,并将消息发送到主题的指定分区。如果该值表示一个无效的分区,则将抛出一个EventDeliveryException。如果头值存在,则此设置将覆盖defaultPartitionId
kafka.producer.security.protocolPLAINTEXT设置为sasl_明文,SASL_SSL或SSL(如果使用某种安全级别写入Kafka)。有关安全设置的更多信息,请参见下面。
more producer security props如果使用sasl_明文,则SASL_SSL或SSL引用Kafka安全性来获得需要在producer上设置的其他属性。
Other Kafka Producer Properties这些属性用于配置Kafka生成器。可以使用Kafka支持的任何生成器属性。惟一的要求是在属性名前加上前缀kafka.producer。例如:kafka.producer.linger.ms

注意,Kafka Sink使用来自FlumeEvent头部的主题和键属性将事件发送给Kafka。如果标题中存在主题,则事件将发送到该特定主题,覆盖为接收配置的主题。如果密钥存在于标题中,Kafka将使用该密钥在主题分区之间划分数据。具有相同键的事件将被发送到相同的分区。如果键为null,事件将被发送到随机分区。

Kafka接收器还为key.serializer和value.serializer提供了默认值。不建议修改这些参数。

弃用属性

配置项名称默认值描述
brokerList使用kafka.bootstrap.servers
topicdefault-flume-topic使用kafka.topic
batchSize100使用kafka.flumeBatchSize
requiredAcks1使用kafka.producer.acks
</article>
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值