最开始对storm ui上展示出来的emit和transferred数量不是很明白, 于是在storm-user上google了一把, 发现有人也有跟我一样的
困惑, nathan做了详细的回答:
emitted栏显示的数字表示的是调用OutputCollector的emit方法的次数.
transferred栏显示的数字表示的是实际tuple发送到下一个task的计数.
如果一个bolt A使用all group的方式(每一个bolt都要接收到)向bolt B发射tuple, 此时bolt B启动了5个task, 那么trasferred显示的数量将是emitted的5倍.
如果一个bolt A内部执行了emit操作, 但是没有指定tuple的接受者, 那么transferred将为0.
这里还有关于spout, bolt之间的emitted数量的关系讨论, 也解释了我的一些疑惑:
有的bolt的execture方法中并没有emit tuple, 但是storm ui中依然有显示emitted, 主要是因为它调用了ack方法, 而该方法将emit ack tuple到系统默认的acker bolt. 因此如果anchor方式emit一个tuple, emitted一般会包含向acker bolt发射tuple的数量.
另外collector.emit(new Values(xxx))和collector.emit(tuple, new Values(xxx)) 这两种不同的emit方法也会影响后面bolt的emitted和transferred, 如果是前者, 则后续bolt的这两个值都是0, 因为前一个emit方法是非安全的, 不再使用acker来进行校验.
分享到:
相关推荐
纯手工打造Emit实现AOP private static void OverrideMethods(TypeBuilder tb, MethodInfo method) { if (!method.IsPublic|| !method.IsVirtual || IsObjectMethod(method)) return; Type[] paramTypes = ...
Emit 学习资源汇总 Emit 学习资源汇总
EMIT学习经典实例 EMIT学习经典实例 非常不错的一个实例
除了在网上查资料之外学习MSIL另一个好方法就是.Net Reflector和ildasm.exe配合使用,.Net Reflector可以把Emit代码转换为普通C#代码,ildasm.exe可以把普通C#代码转换为MSIL,不会写某一功能的Emit代码就先把它的C#...
简单的storm入门示例,从0到1让你清楚的理解storm.下面是代码示例: import backtype.storm.topology.BasicOutputCollector; import backtype.storm.topology.OutputFieldsDeclarer; import backtype.storm.topology...
emit 类库 流畅api reflection
学习Emit的简要教程,非常不错的说明!
Emit代码示例,包括含参、不含参、静态、非静态等8个例子
使用emit编写IL代码,在运行期创建实体类,不用在设计期创建实体。
Emit实现动态代理 参照java的动态代理的使用感觉实现C#版
今天小编就为大家分享一篇PyQT5 emit 和 connect的用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
面试官-Vue.js 中的 $emit 和 $on 方法有什么区别?.pdf
现在很流行微型ORM框架,嘎嘎~~ 自己也写了一个,这是其中的实体转换代码的一部分 使用Emit 动态编译CIL 效率挺高的~~
注意:$emit和$on的事件必须在一个公共的实例上,才能够触发。 例子:我要实现某个系统的通讯录功能,在web端我们可以使用基于jQuery的ztree插件实现目录的展现,但是在vuejs框架里面,tree目录需要通过递归组件实现...
Emit实现从URL或者表单中创建对象。 可通过前缀实现创建多对象。 性能高效,实用性高。
$emit触发事件拿不到传递的参数 https://blog.csdn.net/qq_36413371/article/details/102795742
j2ee class in emit. this is a class slides in emit
使用MSIL采用Emit方式实现C#的代码生成与注入.rar
emit传值.zip