【问题标题】:How spark streaming identifies new filesspark流如何识别新文件
【发布时间】:2015-04-24 16:01:59
【问题描述】:

spark streaming fileStream 如何从一个时间间隔到另一个时间间隔识别监控目录中的新文件?

它是基于新文件名还是文件创建时间戳或任何其他方法?

newFilesOnly 参数的意义是什么?

fileStream(String directory, Class<K> kClass, Class<V> vClass, Class<F> fClass, Function<org.apache.hadoop.fs.Path,Boolean> filter, boolean newFilesOnly, org.apache.hadoop.conf.Configuration conf)

【问题讨论】:

    标签: apache-spark spark-streaming


    【解决方案1】:

    监控的快速回答是它使用文件修改时间(isNewFile使用getFileModTime

    至于newFilesOnly....这不是那么直截了当,但你可以discern this info from the code

    TL;DR;是它只从流媒体开始的最后一分钟提取旧文件(newFilesOnly = false)。

    这个参数的更复杂的答案是它将值initialModTimeIgnoreThreshold设置为当前时间或0。然后使用该值设置modTimeIgnoreThreshold,这是上述与最旧文件的最大值那是在搜索时间窗口 (currentTime - durationToRemember.milliseconds)。那就是existing bugJUST fixed 的地方。时间窗口曾经是硬编码的一分钟窗口,因此如果将此参数设置为 false,则只能在最后 1 分钟内修改文件。不过,我仍然对这个修复持怀疑态度……但是,无论哪种方式,直到 3 天前,这个论点才基本上被打破。

    【讨论】:

      猜你喜欢
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2015-04-15
      • 2015-04-03
      相关资源
      最近更新 更多