我有一个目录,另一个进程将文件引入.
我们当前的Storm实现读取此目录并选择最旧的文件并打开该文件的阅读器.此读取器作为spout中的字段保存,因此当调用nextTuple()时,将从文件输出一行.一旦喷口完成读取,它将关闭阅读器并打开一个新的阅读器到一个新文件.
为了增加吞吐量,一个想法是让多个spout同时读取多个文件,因为这些spout将在同一目录中的相同文件上进行争用,是否有一种方法可以在spouts之间进行通信,以便他们可以协商读取哪些文件? (或者有一个将文件分配给spouts的总经理).
目录和文件存储在HDFS中并从中读取.
解决方法
我认为开箱即用,没有办法让两个喷嘴一起沟通.
但是,你应该尝试 https://github.com/ptgoetz/storm-signals
但是,你应该尝试 https://github.com/ptgoetz/storm-signals
BaseSignalSpout依赖于zookeeper在storm组件之间发送消息.
希望这有帮助!