• Storm并行度


    1、Storm并行度相关的概念

    Storm集群有很多节点,按照类型分为nimbus(主节点)、supervisor(从节点),在conf/storm.yaml中配置了一个supervisor有多个槽(supervisor.slots.ports),每个槽就是一个JVM,就是一个worker,在每个worker里面可以运行多个线程叫做executor,在executor里运行一个topology的一个component(spout、bolt)叫做task。

    1.并行度

      storm的并行是由非常多的supervisor完成的。

      storm的supervisor运行的是topology中的spout/bolt task。

      task是storm中进行计算的最小的运行单位,表示的是spout、bolt的运行实例。

      程序执行的最大粒度的运行单位是进程。在supervisor中,运行task的进程称作worker。

      supervisor节点上可以运行非常多的worker。

      在worker中可以运行线程的,这些线程称作executor。在executor中,运行task。

      

      总结一下,supervisor(节点)>worker(进程)>executor(线程)>task(实例)

        

    2.配置

    2.1 supervisor是storm集群配置的,执行storm supervisor时,产生一个supervisor节点。  

    2.2 worker进程是在storm/conf/storm.yaml文件中选项supervisor.slots.ports配置的。

        worker进程数量也可以通过config.setNumWorkers(workers)设置。

    2.3 executor是通过builder.setSpout(id, spout, parallelism_hint)builder.setBolt(id, bolt, parallelism_hint)设置的。

    2.4 task是通过boltDeclarer.setNumTasks(num)设置的。

    默认情况下,每个supervisor启动4个worker,每个worker启动1个executor,每个executor中会有1个task。

    例如:

    1
    2
    3
    topologyBuilder.setBolt("green-bolt"new GreenBolt(), 2)
                   .setNumTasks(4)
                   .shuffleGrouping("blue-spout);

    上面指定使用2个executor、4个task运行green-bolt,Storm会使用2个executor,每个executor运行2个task来运行green-bolt。

    3、storm提供rebalance命令,可以在topology运行时动态调整并行度。

    例如:

    1
    $ storm rebalance mytopology -n 5 -e blue-spout=3 -e yellow-bolt=10

    也可以在Web UI上面执行rebalance。

  • 相关阅读:
    常建的性能指标
    性能测试常见分类
    性能测试相关概念和指标
    adb命令熟悉
    打包ajax生成小工具
    深入理解类加载demo
    设计模式七大原则
    javamail邮件实现
    @RequiredArgsConstructor用法
    spring-security查询数据库源码解析
  • 原文地址:https://www.cnblogs.com/lishouguang/p/4559209.html
Copyright © 2020-2023  润新知