redis - 在 Storm 中计算前 10 个结果

标签 redis apache-storm

我正在从 redis 服务器读取句子并计算每个单词的出现次数。现在我想根据计数计算前 10 个单词。我有一个 Spout 可以从 Redis 服务器读取句子,一个 Bolt 可以将句子分解成单词,还有一个 Bolt 可以对单词进行计数。

根据计数找到前 10 个单词的方法应该是什么?

最佳答案

假设你必须在最后 X 分钟内执行 top to,每隔 X 分钟用 tick 元组配置你的 bolt,直到继续计算 bolt 中的单词。遇到滴答元组发出前十项时,您可以将计数器保存在内存 TreeMap 中(取决于用例和数据大小)

现在假设您必须在 Redis 数据结构中维护大数据量的前 10 名,并根据您的需要每 Y 秒后发出前 10 名。

有关滴答元组的信息,请参阅 Michael 的博客@ http://www.michael-noll.com/blog/2013/01/18/implementing-real-time-trending-topics-in-storm/

关于redis - 在 Storm 中计算前 10 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17160319/

相关文章:

c# - 书架 : what Redis version to use?

caching - 从 Twitter Streaming API 和 RESTful API 获取的数据是否需要缓存?

caching - Redis 缓存 - "Server Closed the connection"错误

hadoop - Storm 纱 : Application container fails to launch

apache-storm - Storm - DRPC 与事务型与 Trident - 何时使用什么?

java - Apache Storm 本地集群 "Unable to canonicalize address"

java - 如何解析来自Storm方案类中kafka主题的json数据?

azure - azure 上的 redis 跨部署是否持久?

python-2.7 - redis.py : How to flush all the queries in a pipeline

multithreading - Storm Spouts 是否应该仅使用调用 Spout.nextTuple 的线程发出输出?