Bootstrap

Flume——sink连接Hive的参数配置(属性参数)

配置文件官网

可以参考官网的说明

属性参数

属性名默认值说明
type无(必须指定)组件类型名称,必须是"hive"
hive.metastore无(必须指定)元数据仓库地址,例如:thrift://node3:9083
hive.database无(必须指定)数据库名称
hive.table无(必须指定)表名
hive.partition无(可选)逗号分割的分区值,标识写到哪个分区。可以包含逃逸字符。例如,如果表分区字段为(continent: string, country: string, time: string),则"Asia,India,2030-05-26-01-21"表示continent为Asia,country为India,time是2030-05-26-01-21
callTimeout10000Hive和HDFS的IO操作超时时间,例如openTxn、write、commit、abort等操作。单位为毫秒
batchSize15000一个Hive事务允许写的事件最大数量
roundValue1控制多长时间生成一个文件夹的时间的值
roundUnitminute控制多长时间生成一个文件夹的单位,可选值有:second、minute、hour

例子

# 定义Flume agent的名称
agent.name = a1

# 定义agent中的sources(数据源)、channels(通道)和sinks(数据目的地)
a1.sources = r1
a1.channels = c1
a1.sinks = k1

# 配置source,这里使用netcat source,用于从网络接收数据
a1.sources.r1.type = netcat
# 设置netcat source监听的IP地址和端口
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 44444

# 配置channel,这里使用memory channel,用于在内存中存储事件
a1.channels.c1.type = memory
# 设置memory channel的容量
a1.channels.c1.capacity = 10000
# 设置memory channel的事务容量
a1.channels.c1.transactionCapacity = 1000

# 配置sink,这里使用hive sink,用于将数据写入Hive表
a1.sinks.k1.type = hive
# 设置Hive元数据存储的Thrift服务器地址
a1.sinks.k1.hive.metastore = thrift://node3:9083
# 设置要写入数据的Hive数据库名称
a1.sinks.k1.hive.database = my_database
# 设置要写入数据的Hive表名称
a1.sinks.k1.hive.table = my_table
# 设置分区值,用于将数据写入指定的Hive表分区
a1.sinks.k1.hive.partition = Asia,India,2030-05-26-01-21
# 设置Hive和HDFS的IO操作超时时间(毫秒)
a1.sinks.k1.callTimeout = 15000
# 设置一个Hive事务允许写的最大事件数量
a1.sinks.k1.batchSize = 20000
# 设置控制生成文件夹频率的值(这里设置为1,但具体含义取决于roundUnit)
a1.sinks.k1.roundValue = 1
# 设置控制生成文件夹频率的单位(这里设置为hour,即每小时生成一个文件夹)
a1.sinks.k1.roundUnit = hour

# 将source绑定到channel,以便source接收到的事件可以通过channel传输
a1.sources.r1.channels = c1
# 将sink绑定到channel,以便channel中的事件可以被sink处理并写入Hive表
a1.sinks.k1.channel = c1
;