Flume 常用配置项
阅读原文时间:2023年07月09日阅读:3

注:以下配置项均为常见配置项,查询详细配置项可以访问 flume 官网

Source 常见配置项

Avro Source

配置项名称

默认值

描述

Channel

type

组件类型名称,必须为avro

bind

要监听的主机名或IP地址

port

要绑定的端口号

threads

产生的最大工作线程数

ipFilterRules

使用此配置定义N个netty ipFilter模式规则。

Thrift Source

配置项名称

默认值

描述

Channel

type

组件类型名称,必须为Thrift

bind

要监听的主机名或IP地址

port

要绑定的端口号

threads

产生的最大工作线程数

ipFilterRules

使用此配置定义N个netty ipFilter模式规则。

Exec Source

配置项名称

默认值

描述

Channel

type

组件名称,必须为 exec

command

需要执行的指令

restartThrottle

10000

重启之前需要等待的时间(10秒)

restart

false

cmd挂掉是否应该自动重启

batchSize

20

每次可以读取的行数

batchTimeout

3000

这批数据必须处理完的时间

Kafka Source

配置项名称

默认值

描述

channels

type

组件名称,必须为org.apache.flume.source.kafka,KafkaSource

zookeeperConnect

Zookeeper的地址

groupId

flume

consumer group的唯一标识,在多个source或多个agent中设置相同的ID表示它们属于同一个consumer group

topic

Kafka的Topic,只能是一个

batchSize

1000

一个批次中最大能取到的消息数

Netcat Source

配置项名称

默认值

描述

channels

type

组件名称,必须为 netcat

bind

需要绑定的主机

port

需要绑定的端口号

max-line-length

512

每条消息的最大字节数

ack-every-event

true

为每条成功接收的消息回复'OK'

Sequence Generator Source

配置项名称

默认值

描述

channels

type

组件名称,必须为 seq

Http Source

配置项名称

默认值

描述

type

组件名称,必须为http

port

需要绑定的端口

bind

0.0.0.0

需要监听的地址

handler

org.apache.flume.source.http.JSONHandler

handler类的完整名称

handler.*

handler的参数

Custom Source

配置项名称

默认

描述

channels

type

组件名称,为用户自定义的完整类名称

Channels 常用配置项

Memory Channel

配置项名称

默认值

描述

type

组件名称,必须为 memory

capacity

100

channel最大能存储的event数量

transactionCapacity

100

每次事务中能从source中拉取或下沉到sink的最大event数量

keep-alive

3

添加

byteCapacityBufferPercentage

20

定义byteCapacityBuffer 的占比,它与 byteCapacity之和为100%,byteCapacity见下栏

byteCapacity

在这个channel中允许存放的最大字节数 这个字节数只计算event body,这也是需要提供 byteCapacityBufferPercentage 配置参数的原因。 默认为JVM可用最大内存的80% (即通过命令行传递的-Xmx值的80%)。 注意,如果一个agent里面包含了多个channel,channel里面又包含了多个相同的events,那么这些events会被重复计算。 将它设为 0 将会导致这个值强制设定为200GB的容量

JDBC Channel

配置项名称

默认值

描述

type

组件名称,必须为 jdbc

db.type

DERBY

数据库类型,必须为 DERBY.

driver.class

org.apache.derby.jdbc.EmbeddedDriver

JDBC 驱动类

driver.url

(constructed from other properties)

JDBC 连接路径 URL

db.username

“sa”

数据库用户

db.password

密码

connection.properties.file

JDBC 连接的配置文件

create.schema

true

如果为真,则如果库不存在,就会自动创建

create.index

true

创建索引以加快查找

create.foreignkey

true

是否允许创建外键

transaction.isolation

“READ_COMMITTED”

隔离级别 READ_UNCOMMITTED, READ_COMMITTED, SERIALIZABLE, REPEATABLE_READ

maximum.connections

10

运行连接数据库的最大连接数

maximum.capacity

0 (不限制)

channel中允许的最大event数

sysprop.*

数据库特殊配置

sysprop.user.home

嵌入式Derby数据库的存储路径

Kafka Channel

配置项名称

默认值

描述

type

组件名称,必须为 org.apache.flume.channel.kafka.KafkaChannel

brokerList

Kafka Broker列表,建议至少有两台用于实现高可用,格式为hostname:port,broker之间用‘,’隔开

zookeeperConnect

Kafka集群使用的ZooKeeper的URI 格式是‘,’分隔的主机名hostname:port。如果使用chroot,则在末尾添加一次。 例如: zookeeper-1:2181,zookeeper-2:2182,zookeeper-3:2181/kafka

topic

flume-channel

Kafka topic

groupId

flume

channel用于在kafka注册的GroupID,多个channel必须使用相同的topic和group,以确保当一个agent失败时,另一个agent可以获得数据 注意:相同GroupID但是没有channel的consummer将导致丢失

readSmallestOffset

false

当设置为true时,通道将从最老的事件开始读取主题中的所有数据,当为false时,它将只读取通道启动后写入的事件

Other Kafka Properties

这些属性用于配置通道使用的Kafka生产者和消费者。Kafka支持的任何属性都可以使用。惟一的要求是在属性名前面加上前缀 kafka.. 举个例子: kafka.producer.type

File Channel

配置项名称 默认值

描述

type

组件名称,必须为 file.

checkpointDir

~/.flume/file-channel/checkpoint

checkpoint文件的存储目录

useDualCheckpoints

false

备份checkpoint文件,如果它为 true, backupCheckpointDir 必须 被设置

backupCheckpointDir

用于备份的checkpoint目录,它 必须不能 与原checkpoint目录一样

dataDirs

~/.flume/file-channel/data

‘,’分隔的目录列表,用于存储日志文件。在不同的磁盘上使用多个目录可以提高filechannel的性能

transactionCapacity

10000

channel支持的最大事务数

checkpointInterval

30000

checkpoint之间的最大时间间隔

maxFileSize

2146435071

单个日志文件最大的字节数

minimumRequiredSpace

524288000

最少需要的空闲空间(以字节为单位)。为了避免数据损坏,当空闲空间低于此值时,filechannel将停止接受take/put请求

capacity

1000000

单个channel存储的最大容量

keep-alive

3

一个put操作执行的最大时间

checkpointOnClose

true

在关闭时是否创建检查点,如果设置为true,可以加速filechannel的后续启动。

Sinks 常用配置

HDFS Sink

Name

默认值

描述

channel

type

组件名称,必须为 hdfs

hdfs.path

HDFS 目录路径 (例如 hdfs://namenode/flume/webdata/)

hdfs.filePrefix

FlumeData

Flume创建的文件名的前缀

hdfs.fileSuffix

Flume创建的文件名的后缀 (例如 .avro - 注意:当前不会自动添加)

hdfs.inUsePrefix

当前正在写入的文件名的前缀

hdfs.inUseSuffix

.tmp

当前正在写入的文件名的后缀

hdfs.rollInterval

30

触发文件滚动要等待的秒数 (0 = 无需根据时间进行滚动)

hdfs.rollSize

1024

触发文件滚动的字节数大小 (0: 无需根据文件大小滚动)

hdfs.rollCount

10

触发文件滚动的event数量 (0 = 无需根据events进行滚动)

hdfs.idleTimeout

0

自动关闭文件的时间间隔(如果没有数据写入) (0 = 不自动关闭)

hdfs.batchSize

100

每次写入 HDFS前读取的events数量

hdfs.codeC

压缩成以下格式之一: gzip, bzip2, lzo, lzop, snappy

hdfs.fileType

SequenceFile

当前序列化格式,有以下三种: SequenceFile, DataStream or CompressedStream (1)DataStream 不能设置 codeC (2)CompressedStream 需要设置 hdfs.codeC

hdfs.maxOpenFiles

5000

允许同时打开文件的最大数量。如果超过这个数字,则关闭最旧的文件。

hdfs.minBlockReplicas

指定每个HDFS块的最小副本数。如果没有指定,它来自类路径中的默认Hadoop配置.

hdfs.writeFormat

writeFormat格式. 有以下两种: “Text” , “Writable” (默认).

hdfs.callTimeout

10000

HDFS打开、写入、刷新、关闭操作允许的最大毫秒数。 如果发生许多HDFS超时操作,则应增加此数值。

hdfs.threadsPoolSize

10

HDFS操作的线程池数量

hdfs.round

false

时间戳是否应该四舍五入 (如果为true, 时间戳会向下取时间)

hdfs.roundValue

1

四舍五入到它的最高倍数hdfs.roundUnit), 比当前时间更小

hdfs.roundUnit

second

四舍五入的数值 - second, minute or hour.

Hive sink

Name

默认值

描述

channel

type

组件名称,必须为 hive

hive.metastore

Hive metastore 的路径 (例如 thrift://a.b.com:9083 )

hive.database

Hive database

hive.table

Hive 表名

hive.partition

‘,’分隔分区值列表,标识要写入的分区。 例如: 如果表的分区为 (continent: string, country :string, time : string) 那么 ‘Asia,India,2014-02-26-01-21’ 将会被解释为 continent=Asia,country=India,time=2014-02-26-01-21

batchSize

15000

单个Hive事务中能写入的最大event数量

Logger sink

配置项名称

默认值

描述

channel

type

组件名称,必须为 logger

Avro Sink

配置项名称

默认值

描述

channel

type

组件名称,必须为 avro.

hostname

需要绑定的主机或IP地址

port

监听的端口号

batch-size

100

一次性发送的最大events数量

connect-timeout

20000

允许第一次(连接)请求的时间(ms).

Thrift Sink

配置项名称

默认值

描述

channel

type

组件名称,必须为 thrift.

hostname

需要绑定的主机或IP地址

port

监听的端口号

batch-size

100

一次性发送的最大events数量

connect-timeout

20000

允许第一次(连接)请求的时间(ms).

HBase Sink

配置项名称

默认值

描述

channel

type

组件名称,必须为 hbase

table

需要写入到Hbase的表名

columnFamily

Hbase的列族

zookeeperQuorum

quorum 配置. 这个配置的值为 hbase.zookeeper.quorum它在 hbase-site.xml文件中