• 【Storm篇】--Storm并发机制


    一、前述

    为了提高Storm的并行能力,通常需要设置并行。

    二、具体原理

    1. Storm并行分为几个方面:

    Worker – 进程
    一个Topology拓扑会包含一个或多个Worker(每个Worker进程只能从属于一个特定的Topology)
    这些Worker进程会并行跑在集群中不同的服务器上,即一个Topology拓扑其实是由并行运行在Storm集群中多台服务器上的进程所组成

    Executor – 线程
    Executor是由Worker进程中生成的一个线程
    每个Worker进程中会运行拓扑当中的一个或多个Executor线程
    一个Executor线程中可以执行一个或多个Task任务(默认每个Executor只执行一个Task任务),但是这些Task任务都是对应着同一个组件(Spout、Bolt)。

    Task
    实际执行数据处理的最小单元
    每个task即为一个Spout或者一个Bolt

    注意:

    Task数量在整个Topology生命周期中保持不变,Executor数量可以变化或手动调整
    (默认情况下,Task数量和Executor是相同的,即每个Executor线程中默认运行一个Task任务)


    2.在程序中具体设置:

    设置Worker进程数
    Config.setNumWorkers(int workers)

    设置Executor线程数
    TopologyBuilder.setSpout(String id, IRichSpout spout, Number parallelism_hint)
    TopologyBuilder.setBolt(String id, IRichBolt bolt, Number parallelism_hint)
    :其中, parallelism_hint即为executor线程数

    设置Task数量
    ComponentConfigurationDeclarer.setNumTasks(Number val)

    例:
    Config conf = new Config() ;
    conf.setNumWorkers(2);//设置worker数

    TopologyBuilder topologyBuilder = new TopologyBuilder();
    topologyBuilder.setSpout("spout", new MySpout(), 1);//设置线程数
    topologyBuilder.setBolt("green-bolt", new GreenBolt(), 2)
                   .setNumTasks(4)//设置总共的task数这个Bolt任务的
                   .shuffleGrouping("blue-spout);

    3.案例详解

    4.Rebalance – 再平衡
    即,动态调整Topology拓扑的Worker进程数量、以及Executor线程数量

    支持两种调整方式:
    1、通过Storm UI
    2、通过Storm CLI(一般用这个!!!)

    通过Storm CLI动态调整:
    例:storm rebalance mytopology -n 5 -e blue-spout=3 -e yellow-bolt=10
    将mytopology拓扑worker进程数量调整为5个
    “ blue-spout ” 所使用的线程数量调整为3个
    “ yellow-bolt ”所使用的线程数量调整为10个

    PS:当调整的task或者worker进程超过集群配置时,还是按集群最大配置运行。

     

  • 相关阅读:
    mac下远程win8.1时提示"桌面连接无法验证您希望连接的计算机的身份"的解决办法
    在sublime text3下,用快捷键把文件打开到浏览器中
    实现多行文字对齐的原理
    js中===、==、!=、!===的区别
    sublime格式化HTML+CSS插件--HTML-CSS-JS Prettify
    实现多行文字居中方法(兼容IE6)
    telnet localhost 8089 ==》》命令使用
    在Tomcat下部属项目三种方式:
    java服务器
    可变参数
  • 原文地址:https://www.cnblogs.com/LHWorldBlog/p/8353278.html
Copyright © 2020-2023  润新知