Storm 从入门到精通 第七讲 Storm 示例 之 Storm Topology配置说明 -工作进程、平行度、任务数(重要)

工作进程、平行度就、任务数解释

1. 第一种情况

如上使用默认模式,Node 中运行情况:

  

1个 JVM 每个Spout、Bolt 一个Executors 一个Task

2. 第二种情况

说明如下:

1. 独立JVM Worker:2

 printWriterTopologyBuilder.setNumWorkers(2);
  public void setNumWorkers(int numWorkers) {
     printWriterTopology.setNumWorkers(numWorkers);
  }

2.  printWriterTopologyBuilder.setSpout(2);

public void setSpout(int parallelismSize) {
     hasSpout = true;
     printWriterTopology.setSpout(parallelismSize, parallelismSize * 1);
    }

 每个Worker 每个PrintWriterSpout中一个Executor ,运行一个Task, 总共2个Parrallelism

  Each Worker = Parrallelism Size / Worker Size

3.  printWriterTopologyBuilder.setPrintBolt(4, 8);  

  public void setPrintBolt(int parallelismSize, int numTasks) {
     hasPrintBolt = true;
     printWriterTopology.setPrintBolt(parallelismSize, numTasks);
    }


    public void setWriterBolt(int parallelismSize, int numTasks, BoltGroupType boltGroupType) {
     this.hasWriterBolt = true;
     printWriterTopology.setWriterBolt(parallelismSize, numTasks, boltGroupType);

    }

    Each Worker Executors = 4/2 = 2  即 每个worker 两个 Executors
    Each Executor Task Count = numTasks/parallelismSize 
    8/4=2

即 4个Executors 共计 8个Task

4. printWriterTopologyBuilder.setWriterBolt(8, 8);

protected void setWriterBolt(int parallelismSize, int numTasks) {
     setWriterBolt(parallelismSize, numTasks, BoltGroupType.ShuffleGrouping);
  }
   
  Each Worker Executors = Parrallelism Size / Worker Size 
     8/2 =4 
   即 每个Worker中 4个Executors, 每个Executor Task Count =8/8=1

3. 如何理解Task 和 Executor 呢?

如果我们将 NumWorker 配置成4, 将会有哪些变化呢?

我们可以学习到: Executors 可以伴随JVM Worker 数量的提升,平均分布到不同JVM 中运行,
但是 Task 不可以,必须伴随Executors 执行,这里性能提高提升不如WriterBolt 好。
 

再来一个极端配置: 假如我们有8台 Supervisor,配置如下

结论: 8个Task 在一个Executor JVM 中无法通过增加Num worker 提升处理性能。  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值