A stream grouping tells a topology how to send tuples between two components. Remember, spouts and bolts execute in parallel as many tasks across the cluster.

Stream grouping的作用是告诉topology如何在组件(Spout/Bolt)之间传递tuples。

一个拓扑(topology)的执行就一个Spout和很多个Bolt在storm集群中执行。下图中的连线就是流(stream)

If you look at how a topology is executing at the task level, it looks something like this:

Spouts和bolts 可以统称为task,也可以统称为组件(components)后者更恰当一些。

works:在一个supervisor节点可以运行多个jvm进程一个端口一个,每个节点一般开3个以上看硬件配置。一个work就是一个java进程。一个worker包含多个exectors

topology:可以包含一个或者多个worker并行的在不同的机器上执行,

exectors : 默认每个excutor只执行一个task

tasks(bolt/spout) : 每一个spout或者bolt会被当做很多task在集群里面执行,每一个task对应一个线程

component组件就是指(bolt/spout) : 每个sput或者bolt至少对应一个executor

stream grouping: 定义怎么从一堆task发射tuple到另一堆task

works jvm:在一个节点可以运行多个jvm进程,一个topology可以包含一个或者多个worker并行的泡在不同的machine,所以一个work progress就是执行一个topology的子集

并且一个worker只能对应一个toplogy

exectors在一个worker可以包含一个或者多个tasks,但默认每个excutor只执行一个task,一个worker包含多个exectors,每个component(spout和bolt)至少对应一个executor

tasks(bolt/spout instance) task就是具体的处理对象,每一个spout和bolt会被当做很多task在集群里面执行,每一个task对应一个线程,而stream grouping则是定义怎么从一堆task发射tuple到另一堆task,可以调用ToplogyBuilder.setSpout和TopBuilder.setBolt来设置并行度,也就是多个task配置并行度

对于并行度的配置,在storm可以在多个地方进行配置, 优先级为

defaults.yaml<storm.yaml<topology-specific configuration<internal component-specific configuration<external componnet -specific configuration

work process 的数目,可以通过配置文件和代码中的配置,work就是执行进程,所以考虑并发的效果,数目

至少应该大于machines数目

executor数目 component的并发线程数, 只能在代码中配置通过setbolt和setspout的参数,列如 setbolt("green-bolt",new GreenBolt(),2)

tasks数目,可以不配置,默认和executor1:1,也可以通过设置setNumTask()配置

配置并行度

Topology 的worker数通过config设置,也就是执行该toplogy 的work进程数,他可以通过strom

rebalance 命令任意调整

Config conf=new Config();

stream Grouping ,告诉topology如何在两个组件之间发送tuple

定义一个topology的其中一个定义每个bolt接收什么样的流作为输入。stream grouping 就是用来stream应该stream应该

如果分配数据给bolts上面的多个tasks

列如:当:boltA 的一个task要发送一个tuple给bolt B , 他应该发送--

storm里面有7种 stream grouping

1.shuffle grouping

2.fields grouping

3.all grouping

4.global grouping

5.none grouping

6.direct grouping

7local or shuffle grouping

refer to: http://storm.apache.org/releases/current/Tutorial.html

最新文章

  1. 面试小记---外部脚本必须包含 &lt;script&gt; 标签吗?
  2. Java集合中Set的常见问题及用法
  3. hrtimer和work工作队列的使用
  4. vs 折叠跟展开所有方法。
  5. BestCoder Round #79 (div.2)
  6. JAVA WEB新进展
  7. 第四节 使用XML
  8. Flash cs6 如何从FLA 文件导出sound文件
  9. Joda-Time
  10. android学习——eclipse的svn的搭建
  11. HTML5 Canvas 2D绘图
  12. codeforces C. Sereja and Swaps
  13. Delphi ADOQuery连接数据库的查询、插入、删除、修改
  14. Hooking Android System Calls for Pleasure and Benefit
  15. swift 之SnapKit 动画
  16. 学JAVA第四天,JAVA获取年月日
  17. 子集三种生成方法 java
  18. Redis入门到高可用(二十)——Redis Cluster
  19. FreeRTOS 中 systick 相关配置
  20. Others-阿里专家强琦:流式计算的系统设计和实现

热门文章

  1. hdoj1175 连连看(dfs+剪枝)
  2. 【bug】使用微信分享SDK,配置成功但分享信息异常
  3. SELECT 三级联动 [转]
  4. ThreadLocal模式与synchronized关键字的比较
  5. Python面试题整理-更新中
  6. 【LeetCode】462. 最少移动次数使数组元素相等 II
  7. Swift 4.0 废弃的柯里化
  8. POJ 1082
  9. oracle_jdbc_Query
  10. Android_Activity启动模式