1. Shuffle grouping: Tuples被随机分配到每一个bolt’s task,以便于每一个bolt’s task获得相同数量的tuples。

  2. Fields grouping: Stream被根据属性(fields)进行分组。举例:如果一个Stream根据“user-id”分组,具有相同“user-id”属性的tuples会被发往同一个bolt’s task,具有不同“user-id”的tuples有可能发往不同的bolt’s task。

  3. All groupingStream会被重复的发往每一个bolt’s task,使用这个方式需要慎重。

  4. Global grouping输入流会发往bolt’s tasks中的一个。具体来说,会发往最小id的task

  5. None grouping:这种方式表示你并不关心Stream如何分组。当前版本中,它的效果等同于shuffle grouping。Eventually though, Storm will push down bolts with none groupings to execute in the same thread as the bolt or spout they subscribe from (when possible).

  6. Direct grouping:这是一个特殊的grouping。这种方式可以让tuple的生产者决定消费者中哪一个task能够接收这个tuple。只有当一个Stream声明是一个direct stream时,Direct grouping方式才能生效。必须使用[emitDirect](/apidocs/backtype/storm/task/OutputCollector.html#emitDirect(int, int, java.util.List)方法,才能将tuple发送到一个direct Stream中。一个bolt可以通过两种方式获取到消费者的taskid,一种是使用TopologyContext获取,另一种是通过跟踪OutputCollector中的emit方法的返回值(当tuples发送之后,会返回task ids)

  7. Local or shuffle grouping:如果目标bolt在一个worker进程中有多个或一个tasks,tuples会随机发送到进程内的tasks。否则,这种方式与shuffle grouping相同。

最新文章

  1. Wix 安装部署教程(十五) --CustomAction的七种用法
  2. shell学习笔记1
  3. 使用C#对SQLLite进行操作
  4. 大熊君说说JS与设计模式之------状态模式State
  5. JAVA内部类(转)
  6. SVN Global ignore pattern 忽略文件正则后缀
  7. javascript基础学习(八)
  8. css标签选择器
  9. 解决Xcode7 iOS9苹果将原http协议改成了https协议问题
  10. squid服务搭建
  11. wiki oi 3116 高精度练习之加法
  12. SDS 链表
  13. 51 nod 1628 非波那契树
  14. 单列集合类的根接口Collection
  15. Android内存优化之磁盘缓存
  16. 使用 OAuth2-Server-php 搭建 OAuth2 Server
  17. win8.1系统下安装ubuntu实现双系统实践教程
  18. IGServer
  19. 广搜 迷宫(zznu 1962)
  20. DrawerLayout使用

热门文章

  1. app开发之deviceone
  2. Asset Catalog Help (二)---Creating an Asset Catalog
  3. WizardDialog 进度条使用记录
  4. Python核心编程(切片索引的更多内容)
  5. bzoj 4300: 绝世好题
  6. 微信开发——OAuth2.0授权
  7. 将数据导出到Excel2007格式。
  8. GEMR: Get the parent window for view
  9. Markdown学习语法的记录
  10. EF5.0增删改查的写法及执行Sql的方法