打赏

Storm概念学习系列之并行度与如何提高storm的并行度

 

 

 

 

 

  不多说,直接上干货!

 

 

 

  对于storm来说,并行度的概念非常重要!大家一定要好好理解和消化。

    

  

  storm的并行度,可以简单的理解为多线程。

 


如何提高storm的并行度?
  storm程序主要由spout和bolt组成的。spout和bolt在运行期间会生成task实例(new Spout或者new bolt)。

  那这些task实例是需要在线程(executor)里面运行的,而线程是需要在进程(worker)里面执行的。

 

 

 

 

 

  这些,都是可以在代码中控制的到。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1、所以想要提高storm的处理能力,最直接的就是提高executor线程的并行度。

2、提高worker的数量有什么好处呢?
  可以间接提高storm的处理能力,因为一个worker进程的处理能力是有限的,如果线程太多了,是需要使用多个进程的,否则,多线程的效率也不高。

  假设一个进程里面运行10个线程效率最高,如果你把100个线程都在一个进程里面运行。

3、提高task的数量有什么好处呢?
  因为线程内部不能并行处理,所以就算提高线程内部的task的数量,也不能提高storm的并行度。
  它的好处是,可以方便后期执行storm的rebalance(弹性计算)
  【因为当一个storm程序提交之后,这个程序中的task数目就不会再变了】

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  程序怎么来实现,见我下面的博客

Storm编程入门API系列之Storm的Topology默认Workers、默认executors和默认tasks数目

Storm编程入门API系列之Storm的Topology多个Workers数目控制实现

Storm编程入门API系列之Storm的Topology多个Executors数目控制实现

Storm编程入门API系列之Storm的Topology多个tasks数目控制实现

 

posted @ 2017-07-27 21:13  大数据和AI躺过的坑  阅读(657)  评论(0编辑  收藏  举报