一、概述

  可以通过将文件放入磁盘上的 "Spooldir" 目录中来获取数据。此源会监视指定目录中的新文件,并在新文件出现时解析新文件中的事件。事件解析逻辑是可插入的。在将指定文件完全读取到通道后,默认情况下通过重命名文件来指示文件来指示完成,或者可以删除它,或者使用 trackerDir 跟踪处理过的文件。

二、和Exec Source的区别

  这个Source 相对 Exec Source 来说,是可靠的,并且不会丢失数据,即使 Flume 重新启动或关闭,作为这种可靠性的交换,只有不可变的、唯一命名的文件必须被放到 Sqooldir 目录中。
  为了避免文件在放入被监视的目录被写入,Flume会将其日志文件打印错误并停止处理以及重用文件名,Flume将其在日志文件上打印错误并停止处理的问题,在文件名被移动到被监视的目录中时,添加唯一标识符来记录文件名可能是有用的。

a1.channels = c1
a1.sources = r1 a1.sources.r1.type = spooldir #source的类型
a1.sources.r1.channels = c1
a1.sources.r1.spoolDir = /dir #被监视的目录
a1.sources.r1.fileHeader = true #显示文件头

三、示例

# flume配置的例子
# Name the components on this agent
# source:起一个别名
# properties文件它是java的配置文件,=左边就是键,=右边是值;键的开头都是以a1(就是flume的名字--agent的名字就是a1);a1随便起
a1.sources = r1
# sink:起一个别名
a1.sinks = k1
# channels;:起一个别名
a1.channels = c1
 
# Describe/configure the source
# spooldir:监控硬盘上指定的某个目录,如果文件发生变化,会被flume捕获;
a1.sources.r1.type = spooldir
# 要监控的目录,此目录必须存在
a1.sources.r1.spoolDir =/root/flume/
# 已经完成的文件,会加上一个后缀
a1.sources.r1.fileSuffix =.ok
# 已经完成的文件,会立即删除,默认值是never;(永不删除)
# a1.sources.r1.deletePolicy =immediate
# 是否添加存储绝对路径文件名的标题
a1.sources.r1.fileHeader = true
# 增加文件名到header中
a1.sources.r1.basenameHeader = true
# 只处理此目录下面的txt文件;
a1.sources.r1.includePattern =^[\\w]+\\.txt$
 
# Describe the sink
# 描述一个sink: logger日志(打印到控制台上)
a1.sinks.k1.type = logger
 
# Use a channel which buffers events in memory
# 描述一下channel:内存
a1.channels.c1.type = memory
# capacity:容量
a1.channels.c1.capacity = 1000000
# transactionCapacity:事务的容量
a1.channels.c1.transactionCapacity = 1000000
 
# Bind the source and sink to the channel
# 绑定;source和channel绑定
a1.sources.r1.channels = c1
# sink和channel绑定
a1.sinks.k1.channel = c1

验证方法

1、在本地启动flume

2、然后在被监视的目录中创建文件或者将文件移动到该目录下

3、flume即可将监视到的目录中文件的数据收集到

— 要养成终生学习的习惯 —

Flume - [02] Spooling Directory Source的更多相关文章

  1. 把Flume的Source设置为 Spooling directory source

    把Flume的Source设置为 Spooling directory source,在设定的目录下放置需要读取的文件,一些文件在读取过程中会报错. 文件格式和报错如下: 实验一 读取汉子和“:&qu ...

  2. Spooling Directory Source使用技巧

    1.使用文件原来的名字 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 a1.sources=r1   a1.sinks=k1   a1.sources.r1.ty ...

  3. Flume-Spooling Directory Source 监控目录下多个新文件

    使用 Flume 监听整个目录的文件,并上传至 HDFS. 一.创建配置文件 flume-dir-hdfs.conf https://flume.apache.org/FlumeUserGuide.h ...

  4. flume使用之exec source收集各端数据汇总到另外一台服务器

    转载:http://blog.csdn.net/liuxiao723846/article/details/78133375 一.场景一描述: 线上api接口服务通过log4j往本地磁盘上打印日志,在 ...

  5. Flume(3)source组件之NetcatSource使用介绍

    一.概述: 本节首先提供一个基于netcat的source+channel(memory)+sink(logger)的数据传输过程.然后剖析一下NetcatSource中的代码执行逻辑. 二.flum ...

  6. Configuration must specify a spooling directory

    启动spooling源时报错: 原因:spooling配置文件有误 a1.sources.r1.type = spooldir a1.sources.r1.spooldir = /usr/local/ ...

  7. [ETL] Flume 理论与demo(Taildir Source & Hdfs Sink)

    一.Flume简介 1. Flume概述 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据: ...

  8. Flume Source 实例

    Flume Source 实例 Avro Source 监听avro端口,接收外部avro客户端数据流.跟前面的agent的Avro Sink可以组成多层拓扑结构. 1 2 3 4 5 6 7 8 9 ...

  9. flume组件汇总 source、sink、channel

    Flume Source Source类型 说明 Avro Source 支持Avro协议(实际上是Avro RPC),内置支持 Thrift Source 支持Thrift协议,内置支持 Exec  ...

  10. Flume学习之路 (二)Flume的Source类型

    一.概述 官方文档介绍:http://flume.apache.org/FlumeUserGuide.html#flume-sources 二.Flume Sources 描述 2.1 Avro So ...

随机推荐

  1. 裸辞一年狂肝了一个AI搜索!我要硬刚Google和Perplexity!

    Hika AI 是一款 AI 加持的「知识搜索工具」,它主要的目的是帮助你在搜索问题时通过Hika的「不同视角的思路」,为你快速延伸问题相关的知识领域,或者深挖问题中某个关键点,获得更加全面的结果. ...

  2. python读取pdf

    1. vscode 安装python插件 2. vscode 终端安装pdfminer.six , pdfplumber python -m pip install pdfminer.six pyth ...

  3. 【Web前端】【开源分享】H5登陆界面 - 2021年12月30日

    下载地址 Gitee下载 后续更新关注本文评论区作者萌狼蓝天的回复

  4. 【XML编程与WEB服务】XML入门

    目录 XML -入门 XML文档组成 XML文档规则 XML元素 特殊字符数据引用 CDATA段 空白处理 XML -入门 XML(Extensible Markup Language):可扩展的标记 ...

  5. 在Ubuntu系统上手动安装GCC环境

    Ubuntu系统是自带GCC安装指令的apt install gcc,当前apt源中gcc版本为5.4.0,版本太低,推荐手动安装gcc8.3.0 手动安装gcc8.3.0之前需要先确保安装gcc环境 ...

  6. Qt编写安防视频监控系统44-视频上传

    一.前言 视频上传用来将本地存储的视频文件上传到云端服务器,间接的实现了本地视频存储到云端的功能,其实本质上是先存储在本地,文件生成后再去上传到云端的,最终的效果一样就是,为了拓展兼容性,直接做了单独 ...

  7. 解决pip命令报错及Python环境配置指南:从安装到优化

    1. 错误日志 当我在 Linux 机器(使用 Debian 或 Ubuntu 或衍生发行版)上运行 pip install xyz 时,会出现这样的错误: error: externally-man ...

  8. [转]解决Spring Data Jpa 实体类自动创建数据库表失败问题

    先说一下我遇到的这个问题,首先我是通过maven创建了一个spring boot的工程,引入了Spring data jpa,结果实体类创建好之后,运行工程却没有在数据库中自动创建数据表. 找了半天发 ...

  9. 【Java并发编程线程池】 ForkJoinPool 线程池是什么 怎么工作的 和传统的ThreadPoolExecutor比较

    Java 中的 ForkJoinPool 线程池是什么 怎么工作的 Java 中的 ForkJoinPool 线程池是什么 怎么工作的 相比较于传统的线程池,ForkJoinPool 线程池更适合处理 ...

  10. CDS标准视图:维护通知活动信息 I_MaintNotificationActyData

    视图名称:维护通知活动信息 I_MaintNotificationActyData 视图类型:基础 视图代码: 点击查看代码 @AbapCatalog.sqlViewName: 'INOTIFACTY ...