storm trident 分布式查询遇到的一个问题
storm trident 分布式查询遇到的一个问题
岩之有理 发表于3年前
storm trident 分布式查询遇到的一个问题
  • 发表于 3年前
  • 阅读 41
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

在学习storm trident的时候,遇到一个问题;

背景是一个很简单的场景,从一个文档中读取句子,然后算出每个单词出现的次数,将结果存入MyMemoryMapState中。

然后做一个分布式查询:

topology.newDRPCStream("word", drpc)//默认输入的fields 是"args"
  .stateQuery(wordCounts, new Fields("args"), new MapGet(), new Fields("count"));

drpc调用的代码

drpc.execute("word", "first")

结果出现有时候查询是null,有时候会有数据。比较奇怪,既然内存中已经有了数据,为什么查不出呢?

后来尝试修改了分布式查询代码

topology.newDRPCStream("word", drpc)//默认输入的fields 是"args"
  .groupBy(new Fields("args"))
  .stateQuery(wordCounts, new Fields("args"), new MapGet(), new Fields("count"));

然后每次都能查询出结果。不明白为什么非要groupby 一下。需要了解一下stateQuery的过程!

共有 人打赏支持
粉丝 7
博文 18
码字总数 6134
×
岩之有理
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: