fields是什么意思(Storm 中Fields有什么用)

发布时间:2025-12-10 22:51:11 浏览次数:1

TransactionalTopologyBuilderbuilder=newTransactionalTopologyBuilder("test","spout",newTweetsTransactionalSpout());builder.setBolt("users-splitter",newUserSplitterBolt(),4).shuffleGrouping("spout");builder.setBolt("hashtag-splitter",newHashtagSplitterBolt(),4).shuffleGrouping("spout");builder.setBolt("user-hashtag-merger",newUserHashtagJoinBolt(),4).fieldsGrouping("users-splitter","users",newFields("tweet_id")).fieldsGrouping("hashtag-splitter","hashtags",newFields("tweet_id"));

这里有两个bolt在向user-hashtag-merger发送数据,两个bolt在 emit的时候可能发送了不同的tuple比如:

users-splitter中emit(new Values(a, b, c)); declarer.declare(new Fields("id", "name", "tweet_id"));

hashtag-splitter中则emit(new Values(a, b)); declarer.declare(new Fields("id", "tweet_id"));

比如user-hashtag-merger中需要的是users-splitter中的c,hashtag-splitter 中的b,而在user-hashtag-merger

中接收数据的时候无法知道数据是哪个bolt发来的(或者就算知道,发来的数据格式不一样也不是一个好的设计)所以这边设定了一个

Fields,这样在发送数据的时候只发送指定Fields的数据,比如这边user-hashtag-merger不管前面bolt emit的时候

发送了什么,最后收到的只有一个,方便处理。

builder.setBolt("redis-committer",newRedisCommiterCommiterBolt()).globalGrouping("users-splitter","users").globalGrouping("hashtag-splitter","hashtags").globalGrouping("user-hashtag-merger");

看完上述内容,你们对Storm 中Fields有什么用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注本站行业资讯频道,感谢大家的支持。

fields是什么意思
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477