`
liyonghui160com
  • 浏览: 775657 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flume-ng spooling source的方式增加了对目录的递归检测

阅读更多

 

 

原有的spooling source的方式只支持一级目录的文件变动的检测,修改了一下源码支持对目录的递归检测,可以支持多级目录下的文件变动

ReliableSpoolingFileEventReader类增加以下下方法

 /**
  * add by 
  *
  * @param files
  * @param dir
  * @param filter
  */
 private void listDirFiles(List<File> files, File dir, FileFilter filter) {
  File[] childs = dir.listFiles(filter);// 列出目录下所有的文件
  for (int i = 0; i < childs.length; i++) {
   if (childs[i].isFile()) {
    files.add(childs[i]);
   } else {
    if (childs[i].isDirectory()) {
     listDirFiles(files, childs[i], filter);// 如果是个目录,就继续递归列出其下面的文件.
    }
   }
  }
 }

 

修改getNextFile方法

 private Optional<FileInfo> getNextFile() {
    List<File> candidateFiles = Collections.emptyList();

    if (consumeOrder != ConsumeOrder.RANDOM ||
      candidateFileIter == null ||
      !candidateFileIter.hasNext()) {
      /* Filter to exclude finished or hidden files */
      FileFilter filter = new FileFilter() {
        public boolean accept(File candidate) {
          String fileName = candidate.getName();
          if ((candidate.isDirectory()) ||
            (fileName.endsWith(completedSuffix)) ||
            (fileName.startsWith(".")) ||
            ignorePattern.matcher(fileName).matches()) {
            return false;
          }
          return true;
        }
      };
      //candidateFiles = Arrays.asList(spoolDirectory.listFiles(filter));
	  candidateFiles = new ArrayList<File>();//新增的
	  listDirFiles(candidateFiles, directory, filter);//新增的

 

分享到:
评论

相关推荐

    flume-ng-sql-source-1.5.2

    总之,Flume-ng-sql-source-1.5.2为Flume增加了强大的SQL数据源能力,使得数据采集范围扩大到了结构化数据领域,这对于构建实时数据处理和分析系统至关重要。通过对源码的深入理解和使用,可以更高效地利用这一工具...

    flume-ng-sql-source-release-1.5.2.zip

    Flume-ng-sql-source的版本1.5.2可能包含了对早期版本的改进和修复,例如性能优化、错误修复或增加了对更多数据库类型的兼容性。为了使用这个版本,你需要确保你的Flume环境支持此插件,并正确地配置了相关依赖。 ...

    flume-ng-sql-source-1.5.2.jar

    flume-ng-sql-source-1.5.2.jar从数据库中增量读取数据到hdfs中的jar包

    flume-ng安装

    Flume-NG 安装与配置指南 Flume-NG 是一个分布式日志收集系统,能够从各种数据源中实时采集数据,并将其传输到集中式存储系统中。本文将指导您完成 Flume-NG 的安装和基本配置。 安装 Flume-NG 1. 先决条件:...

    flume-ng-sql-source-1.5.3.jar

    flume-ng-sql-source-1.5.3.jar,flume采集mysql数据jar包,将此文件拖入FLUME_HOME/lib目录下,如果是CM下CDH版本的flume,则放到/opt/cloudera/parcels/CDH-xxxx/lib/flume-ng/lib下,同样需要的包还有mysql-...

    flume-ng-sql-source-1.5.1

    flume-ng-sql-source-1.5.1 flume连接数据库 很好用的工具

    flume-ng-sql-source-1.4.3.jar

    在1.4.3版本中,Flume-ng-sql-source实现了对SQL源的集成,使得用户能够直接从关系型数据库中采集数据。这个功能极大地扩展了Flume的应用场景,尤其是在大数据环境中,对于实时或者近实时的数据流处理,能够方便地将...

    flume-ng-sql-source.jar

    flume是一个日志收集器,更多详细的介绍可以参照官网:http://flume.apache.org/ flume-ng-sql-source实现oracle增量数据读取 有了这个jar文件即可从关系型数据库拉去数据到flume

    Flume-ng-1.6.0-cdh.zip

    Flume-ng-1.6.0-cdh.zip 内压缩了 3 个项目,分别为:flume-ng-1.6.0-cdh5.5.0.tar.gz、flume-ng-1.6.0-cdh5.7.0.tar.gz 和 flume-ng-1.6.0-cdh5.10.1.tar.gz,选择你需要的版本。

    flume-ng-sql-source

    包含flume-ng-sql-source-1.5.1&flume;-ng-sql-source-1.4.1 此内容均为网上下载

    flume-ng-1.6.0 cdh5.7.0安装包

    该压缩包“flume-ng-1.6.0-cdh5.7.0”是针对Cloudera Data Hub (CDH) 5.7.0 平台的Flume的特定版本,"ng"代表"Next Generation",意味着它是Flume的更新版本,提供了更先进的特性和性能优化。CDH是一个完整的、经过...

    flume-ng-sql-source-1.4.1.jar

    flume-ng-sql-source实现oracle增量数据读取 flume连接oracle增量数据读取

    flume-ng-1.6.0-cdh5.5.0.tar.gz

    "flume-ng-1.6.0-cdh5.5.0.tar.gz" 是 Apache Flume 的一个特定版本,具体来说是 "Next Generation" (ng) 版本的 1.6.0,与 Cloudera Data Hub (CDH) 5.5.0 发行版兼容。CDH 是一个包含多个开源大数据组件的商业发行...

    Flume-ng在windows环境搭建并测试+log4j日志通过Flume输出到HDFS.docx

    启动 Flume-ng,使用 telnet 命令写入一些数据,让 Flume 检测。 三、使用 Log4j 将日志输出到 HDFS 首先,需要启动 Hadoop 服务。然后,需要新建一个 Java 项目,引入 Log4j.jar 包依赖和 Flume 相关依赖。在 pom...

    flume-ng-sql-source-1.3.7

    Flume读取mysql配置,导入即可用,详细参考https://github.com/keedio/flume-ng-sql-source/tree/release/1.5.1

    flume-taildir-source-1.9.0.jar

    flume断点续传覆盖jar,使用组件flume-taildir-source-1.9.0覆盖flume/bin目录下的jar即可

Global site tag (gtag.js) - Google Analytics