zoukankan      html  css  js  c++  java
  • Storm系列之一——Storm Topology并发

    1、是什么构成一个可运行的topology?

        worker processes(worker进程),executors(线程)和tasks。

        一台Storm集群里面的机器可能运行一个或多个worker进程,一个worker进程运行一个特定topology的executors。

        一个worker进程可能运行一个或多个executors。每个executor是一个线程。一个executor运行同一个spout或者bolt的一个或多个task。

        一个task完成具体的数据处理。

        一个worker进程执行一个topology的子集。一个worker进程属于一个指定topology并且可以运行属于一个topology的一个或多个executors。一个topology由很多这样的worker进程运行在Storm集群的很多机器上。

        一个task完成具体的数据处理—一个组件的任务数在整个topology的生命周期内是不变的,但是一个组件的executors数量在topology的生命周期内是可以变的。#threads <= #tasks。默认情况下,tasks的数量被设置成与executors的数量相等。 Storm将会在每个executor里面运行一个task。

    2、配置一个topology的parallelism。

        Storm里面的"parallelism"指parallelism hint, 它代表一个组件的executor的初始数量。

        worker进程的数量:一个topology拥有的worker进程的数量。配置文件里面设置:TOPOLOGY_WORKERS  代码里面设置:Config#setNumWorkers

        executors的数量:每个组件拥有的executors数量。 代码里面配置:TopologyBuilder#setSpout()   TopologyBuilder#setBolt()                             parallelism_hint指出一个组件的初始executors的数量。

        tasks的数量:每个组件创建多少task。  配置文件里面配置:TOPOLOGY_TASKS       代码里面配置:ConponentConfigurationDeclare#setNumTasks()。

        另外,TOPOLOGY_MAX_TASKS_PARALLELISM限定了单个组件可以产生的executors的最大数量。

    3、改变一个topology的parallelism。

         rebalanceing:这是Storm的一个漂亮的特性。worker进程的数量和executor的数量可以动态增加或减少,而不需要重启集群或者重启topology。

         两种方式:1、用Storm web UI       2、CLI工具

    ## Reconfigure the topology "mytopology" to use 5 worker processes,
    ## the spout "blue-spout" to use 3 executors and
    ## the bolt "yellow-bolt" to use 10 executors.
    
    $ storm rebalance mytopology -n 5 -e blue-spout=3 -e yellow-bolt=10
  • 相关阅读:
    C++--第25课
    C++--第24课
    C++--第23课
    C++--第22课
    C++--第21课
    C++--第20课
    C++--第19课
    C++--第18课
    C++--第17课
    Windows程序设计学习笔记(1):一个简单的windows程序
  • 原文地址:https://www.cnblogs.com/man-li/p/4205957.html
Copyright © 2011-2022 走看看