Flume使用案例之实时读取目录到HDFS

楼高5个月前技术文章117

目标:使用flume监听整个目录的文件

分步实现

1. 创建配置文件flume-dir.conf

#1 Agent

a3.sources = r3

a3.sinks = k3

a3.channels = c3

 

#2 source

a3.sources.r3.type = spooldir

a3.sources.r3.spoolDir = /opt/module/flume1.8.0/upload

a3.sources.r3.fileSuffix = .COMPLETED

a3.sources.r3.fileHeader = true

#忽略所有以.tmp结尾的文件,不上传

a3.sources.r3.ignorePattern = ([^ ]*\.tmp)

 

# 3 sink

a3.sinks.k3.type = hdfs

a3.sinks.k3.hdfs.path = hdfs://dtstack_hdfs:9000/flume/%H

#上传文件的前缀

a3.sinks.k3.hdfs.filePrefix = upload-

#是否按照时间滚动文件夹

a3.sinks.k3.hdfs.round = true

#多少时间单位创建一个新的文件夹

a3.sinks.k3.hdfs.roundValue = 1

#重新定义时间单位

a3.sinks.k3.hdfs.roundUnit = hour

#是否使用本地时间戳

a3.sinks.k3.hdfs.useLocalTimeStamp = true

#积攒多少个EventflushHDFS一次

a3.sinks.k3.hdfs.batchSize = 100

#设置文件类型,可支持压缩

a3.sinks.k3.hdfs.fileType = DataStream

#多久生成一个新的文件

a3.sinks.k3.hdfs.rollInterval = 600

#设置每个文件的滚动大小大概是128M

a3.sinks.k3.hdfs.rollSize = 134217700

#文件的滚动与Event数量无关

a3.sinks.k3.hdfs.rollCount = 0

#最小副本数

a3.sinks.k3.hdfs.minBlockReplicas = 1

 

# Use a channel which buffers events in memory

a3.channels.c3.type = memory

a3.channels.c3.capacity = 1000

a3.channels.c3.transactionCapacity = 100

 

# Bind the source and sink to the channel

a3.sources.r3.channels = c3

a3.sinks.k3.channel = c3

2. 执行测试:执行如下脚本后,请向upload文件夹中添加文件试试

/opt/module/flume1.8.0/bin/flume-ng agent \

--conf /opt/module/flume1.8.0/conf/ \

--name a3 \

--conf-file /opt/module/flume1.8.0/jobconf/flume-dir.conf

提示: 在使用Spooling Directory Source

1) 不要在监控目录中创建并持续修改文件

2) 上传完成的文件会以.COMPLETED结尾

3) 被监控文件夹每500毫秒扫描一次文件变动

相关文章

某网络环境下访问业务异常问题排查

某网络环境下访问业务异常问题排查

问题现象在办公网络环境下访问业务:http://xxx服务,无法正常跳转至登陆页面,如下:但是在另外一台机房服务器访问业务:http://xxx 是正常的,会自动跳转到登陆页面,如下:排查步骤1、查找...

企业级大数据安全架构(十)

企业级大数据安全架构(十)

一、DBeaver连接Kerberos认证下的hive1.配置本地hosts因为Kerberos认证过程及集群服务中,很多是以主机名的形式进行访问的,所以工作机要设置hosts. 域名映射,我们通过部...

MySQL 8.0 不可见索引使用

一、具体信息1、在提供 SQL 优化意见的时候包括了两个冗余索引的内容,具体内容如下:查看慢 SQL 的时候发现 database 库 table 表中存在冗余索引,具体冗余索引情况如下:KEY `k...

MySQL 复制-无数据环境搭建异步复制

MySQL 复制-无数据环境搭建异步复制

全新初始化(新环境,无数据)搭建 MySQL 异步复制 & GTID 复制标准文档。一、前言环境说明:操作系统 CentOS 7  & 数据库版本 5.7.32参数要求:主库必须开启...

lru_cache 缓存

Python 语法: @functools.lru_cache(maxsize=128, typed=False)Least-recently-used 装饰器。Iru 最近最少使用、cache 缓存...

MySQL运维实战(3.2) 常见数据库连接失败问题排查

如果数据库连接失败,可以从如下几方面来排查:1、客户端到服务端的网络是否畅通,服务端端口是否能连通。使用ping、telnet等工具探测服务端的端口是否能访问。[root@box3 ~]#&...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。