关于Storm的几点困惑释疑

原创 2015年07月07日 16:13:35
一、Storm的文档中提及为Spout和Bolt单元设置的“线程数量”为“初始线程数量”,难道还可以改变?
在一个具体的Topology实例运行起来后,可以动态调整为Spout单元和Bolt单元服务的线程的“线程数量”,因此称刚开始设置的线程数量为初始线线程数量”。

参考文献:
[1]:http://blog.csdn.net/dslztx/article/details/46789443


二、在Storm中已经有了进程,线程,为何还需要任务?
在Storm中已经有了进程和线程,为何还需要任务?任务对于提升并发性没有意义,因为同一个线程中的多个任务间是串行执行的。
这样做的主要原因是:
当我们只有进程和线程两个层次的时候,如果需要将Tuple根据某个值进行分组(即采用fieldsGrouping分组方式),那么刚开始设定的线程数量就不能改变,否则就会出错。
比如刚开始设定线程数量为3,那么值1和4的Tuple被分配到线程1,值2和5的Tuple被分配到线程2,值3和6的Tuple被分配到线程3。而如果此时动态将线程数量改为4,那么值1和5的Tuple被分配到线程1,值2和6的Tuple被分配到2,值3的Tuple被分配到线程3,值4的Tuple被分配到线程4。
那么由于是在线动态改变的,线程2就可能会有2,5,6值的Tuple,这就导致了数据的不一致。
而在Storm中,不像Hadoop中,很多时候需要调整参数,必须是在线动态的,而不能是离线静态的。
因而,才设置了任务这个层次,这时候,分组根据任务数量来进行分配,Storm中可以动态调整进程数量和线程数量,但是某个单元的任务数量是静态不可动态调整的


参考文献:
[1]:http://blog.csdn.net/dslztx/article/details/46789443
[2]:http://stackoverflow.com/questions/17257448/what-is-the-task-in-storm-parallelism
[3]:http://www.quora.com/What-is-a-task-in-Storm-topology
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

android-----关于事件分发机制中几点困惑测试

这几天以来对Android开发艺术探索中关于事件机制的总结有点不太明白,今天特地通过demo测试如下两个结论:         1. 某个View一旦决定拦截,那么这一个事件序列都只能由他来处理(如果...

storm的利用并行度提高处理速度的几点感想

在storm的流计算框架中,在数据量非常大或者计算逻辑比较复杂的情况下,可能会造成chulisudubianmandeqingk

正则表达式(vim版)非贪婪匹配释疑

本以为自己虽然并没有特别精通正则表达式,但是基本的用法还是没有问题.但是最近遇到一个问题还是让我捉襟见肘,在此感谢大牛哥的指导. 首先我们大致了解一下正则表达式. 元字符: .   任意字符 ...

IT 学生 解除困惑

  • 2009-12-09 13:03
  • 884KB
  • 下载

Ojective-c中@property属性参数释疑

property的属性分为3类: 1、读写属性(Writability)包含:readwrite / readonly 2、setter语义 (Setter Semantics)包含:assign...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)