前言:storm作为流式实时计算的代表之一,它的地位对于流式计算相当于hadoop在离线计算中一般。抛开编码过程,本文就来聊聊storm的构造和工作原理。
一.Storm的核心组件
Nimbus:负责资源分配和任务调度。(充当集群中master的角色)。
Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程。(充当slave角色)
---可以通过配置文件设置当前supervisor上启动多少个worker。
Worker:运行具体处理组件逻辑的进程。Worker运行的任务类型只有两种,一种是Spout任务,一种是Bolt任务。(Worker相当于一个JVM,是一个进程,一个topology可以有一个或多个worker,他们并行跑在多个物理机上,并且一个Worker只能从属一个topology)。
executor:worker中每一个spout/bolt下的线程称为executor。一个Worker可以包含多个executor。
Task:Task是用户定义的处理逻辑对象,每一个Spout/Bolt会被当作很多task在整个集群里面执行。
--默