Storm 流程分析

Storm 流程分析_第1张图片

流程说明

  1. client提交topology到nimbus

  2. nimbus针对该topology建立本地的目录,nimbus中的调度器根据topology的配置计算task,并把task分配到不同的worker上,调度的结果写入zk。

  3. 在zk上创建assignments节点,存储task和supervisor中work的对应关系。
    在zk上创建workerbeats节点来监控worker的心跳。

  4. supervisor通过watch机制, 感知到nimbus在zk上的任务分配信息, 并从zk上拉取任务信息, 分辨出属于自己的任务。根据自己的任务信息, 启动自己的worker, 并分配端口

  5. worker启动之后, 连接zk, 拉去任务。
    worker根据任务类型, 分别执行spout任务或者bolt任务
        spout生命周期:open、nextTuple、outPutFiled
        bolt   生命周期:prepare、execute(tuple)、outPutFiled


  • 每个worker上运行多个task,task有executor来具体执行。worker根据topology信息初始化建立task之间的连接,相同worker内的task通过disrupterQueue来通信,不同worker间默认采用netty来通信。然后整个topology就运行起来了。

你可能感兴趣的:(Storm)