【发布时间】:2014-10-01 10:01:47
【问题描述】:
我有一个目录,另一个进程将文件放入其中。
我们当前的 Storm 实现读取此目录并选择最旧的文件并打开文件的阅读器。该读取器作为 spout 中的一个字段保存,因此当调用 nextTuple() 时,会从文件中输出一行。一旦 spout 完成读取,它就会关闭阅读器并打开一个新阅读器来读取新文件。
为了提高吞吐量,一个想法是让多个 spout 一次读取多个文件,因为这些 spout 将争夺同一目录中的相同文件,有没有办法在 spout 之间进行通信,以便它们可以协商哪些文件读书? (或者有一个将文件分配给 spout 的整体经理)。
目录和文件从 HDFS 存储和读取。
【问题讨论】:
-
创建一个可以读取的锁文件来决定文件是否可以读取
-
我有同样的问题和疑问。你最后是怎么解决这个问题的?
标签: java apache-storm