在使用exec来监听数据源虽然实时性较高,但是可靠性较差,当source程序运行异常或者linux命令中断,都会造成数据的丢失,再恢复正常运行之前,数据的完整性无法得到保证。
Spooling Directory Source通过监听某个目录下的新增文件,并将文件的内容读取出来,实现日志信息的收集。实际使用中会结合log4j进行使用。被传输结束的文件会修改后缀名,添加.completed后缀(可以自定义)。

下面编写agent,对Spooling Directory Source进行简单的使用,并使用File Channel。

编写agent

#define agent1
agent1.sources = r3
agent1.channels = c3
agent1.sinks = k3# defined source
agent1.sources.r3.type = spooldir
agent1.sources.r3.spoolDir = /home/bxp/Documents/doc/flume/logs
#"^$":所有的都抽取,下面的正则为,只收集以不.log结尾的日志文件
agent1.sources.r3.ignorePattern = ^(.)*\\.log$
#设置传输完成的文件的后缀
agent1.sources.r3.fileSuffix = .com# defined channel
#使用File Channel
agent1.channels.c3.type = fileagent1.channels.c3.checkpointDir = /home/bxp/Documents/doc/flume/checkpointagent1.channels.c3.dataDirs = /home/bxp/Documents/doc/flume/data# defined sinks
agent1.sinks.k3.type = hdfs
agent1.sinks.k3.hdfs.path = hdfs://hadoop-series.bxp.com:8020/user/bxp/flume/testsp-log/%Y%m%d
agent1.sinks.k3.hdfs.useLocalTimeStamp = true
agent1.sinks.k3.hdfs.fileType = DataStream
agent1.sinks.k3.hdfs.writeFormat = Text
agent1.sinks.k3.hdfs.batchSize = 10#bind the sources and sink to the channel
agent1.sources.r3.channels = c3
agent1.sinks.k3.channel = c3

执行agent

bin/flume-ng agent --conf conf/  --name agent1 --conf-file conf/agent1-app.conf -Dflume.root.logger=DEBUG,console

需要注意的是,

agent1.channels.c3.checkpointDir = /home/bxp/Documents/doc/flume/checkpoint
agent1.channels.c3.dataDirs = /home/bxp/Documents/doc/flume/data

中指定的目录需要先再本地创建好。

Spooling Directory Source 使用相关推荐

  1. Flume使用Spooling Directory Source采集文件夹数据到hdfs

    一.需求说明 flume监控linux上一个目录(/home/flume_data)下进入的文件,并写入hdfs的相应目录下(hdfs://master:9000/flume/spool/%Y%m%d ...

  2. flume学习(十一):如何使用Spooling Directory Source

    最近在弄一个信令数据汇聚的事情,主要目的是把FTP上的信令数据汇聚到HDFS上去存储. 逻辑是这样的:把FTP服务器上的文件下载到一台主机上,然后SCP到另外一台主机上的Spooling Direct ...

  3. Mac终端 zsh环境变量配置 source:13: no such file or directory: source

    问题: Mac 终端中,在 ~/.bash_profile 中自行配置的环境变量需要每次开启终端都要执行: source ~/.bash_profile 后,配置的环境变量才生效 我们发现,在zsh中 ...

  4. Flume Source 实例

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

  5. Flume Source

    一 Avro Source 监听avro 端口和从外部的Avro 客户端接受event.当与其他的flumeagent内嵌的AvroSink成对时,他能创建分层集合. 1.1Required Prop ...

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

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

  7. Flume之Source

    Source Flume内置了大量的Sourece,其中Avro Source(集群).Thrift Source.Spooling Directory Source(目录).Kafka Source ...

  8. Flume的开发之 自定义 source 自定义 sink 自定义拦截器

    一:开发相关 加入 jar 包依赖: <dependency> <groupId>org.apache.flume</groupId> <artifactId ...

  9. 大数据——Flume组件Source、Channel和Sink具体使用

    Flume组件Source.Channel和Sink使用说明 Flume Sources Avro Source 配置范例 Thrift Source 配置范例 Exec Source 配置范例 JM ...

最新文章

  1. 「欧拉定理」学习笔记(费马小定理)
  2. sap会计期间打开关闭
  3. mac搭建mongodb
  4. [C++11]final关键字的使用
  5. 哈希表思路图解和代码实现
  6. sublime text 3编写C语言或者C++的snippet
  7. 吴恩达《机器学习》课程总结(8)_神经网络参数的反向传播算法
  8. java为table添加一行_Js实现Table动态添加一行的小例子
  9. linux sdb目录,linux – / dev / sdb:没有这样的文件或目录(但是/ dev / sdb1等存在)...
  10. 什么是BS,BS和CS的区别有哪些:
  11. python123测验六+测验七
  12. 快速复制移动文件_如何使用F2快速移动或复制Word中的内容
  13. 吃妖怪的萝莉和帅气道长大叔,古风治愈漫画温暖来袭!
  14. 怎么跨网段用计算机名访问,如何在不同的网段上互相访问
  15. 静态链接之与静态库的链接
  16. TensorFlow Estimator 官方文档之----内置Estimator
  17. KaTeX数学公式总结
  18. 通信室计算机室采购配置co2灭火器,安全设施标准手册.doc
  19. Axure9 最新授权码,持续更新中
  20. aba会导致问题_CAS导致的ABA问题及解决

热门文章

  1. 他曾被视为马斯克第二,现在是等着坐牢的骗子
  2. Bootstrap3基础 btn-xs/sm... 按钮的四种大小
  3. antv,图表和地图
  4. EasyExcel ExcelGenerateException: The index of 'xx' and 'xx' must be inconsistent
  5. EasyExcel ExcelGenerateException: The index of ‘xx‘ and ‘xx‘ must be inconsistent
  6. Python 批量合并 Excel
  7. 竞价推广跑oCPC不起量怎么办?
  8. windows10配置WSL(Ubuntu)环境
  9. 百度人脸识别api php demo,百度人脸识别api实现及demo
  10. 一个描述二氧化硅的两体势能BKS