实时流接入数仓,基本在大公司都会有,在Flume1.8
以后支持taildir source
, 其有以下几个特点,而被广泛使用:
1.使用正则表达式匹配目录中的文件名
2.监控的文件中,一旦有数据写入,Flume
就会将信息写入到指定的Sink
3.高可靠,不会丢失数据
4.不会对跟踪文件有任何处理,不会重命名也不会删除
5.不支持Windows
,不能读二进制文件。支持按行读取文本文件
本文以开源Flume
流为例,介绍流接入HDFS
,后面在其上面建立ods
层外表。
1.1 taildir source配置
a1.sources.r1.type = TAILDIR
a1.sources.r1.positionFile = /opt/hoult/servers/conf/startlog_position.json
a1.sources.r1.filegroups = f1
a1.sources.r1.filegroups.f1 =/opt/hoult/servers/logs/start/.*log
1.2 hdfs sink 配置
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = /user/data/logs/start/logs/start/%Y-%m-%d/
a1.sinks.k1.hdfs.filePrefix = startlog.
# 配置文件滚动方式(文件大小32M)
a1.sinks.k1.hdfs.rollSize = 33554432
a1.sinks.k1.hdfs.rollCount = 0
a1.sinks.k1.hdfs.rollInterval = 0
a1.sinks.k1.hdfs.idleTimeout = 0
a1.sinks.k1.hdfs.minBlockReplicas = 1
# 向hdfs上刷新的event的个数
a1.sinks.k1.hdfs.batchSize = 100