storm关键概念
- storm不用来处理静态数据,主要用来处理动态数据
- 一个topologies启动后是始终处于运行状态,除非手动关闭
storm 架构
- Nimbus:管理节点,用于提交
- Supervisor:从节点,接受来自于Nimbus节点的任务,管理Worker
- Worker:工作进程,具体执行业务的工作进程
- Executor:工作线程,一个实际的物理线程
- Spout / Bolt:计算模型节点,也叫task,多个task可能公用一个Executor
- Executor:工作线程,一个实际的物理线程
- Worker:工作进程,具体执行业务的工作进程
- Topology:执行程序,指定数据在Spout和bolt的流动方式
- zookeeper:用来存储调度信息,supervisor要执行的任务,维护集群的状态。storm所有的元数据信息保存在Zookeeper中
- 监听nimbus、supervisor、worker的心跳
- 记录任务的分配情况。nimbus将任务分配发布到zk上,supervisor进行监听
zookeeper: https://www.cnblogs.com/ierbar0604/p/3948528.html
Topology
- Tuple:消息传递的基本单元
- Stream:Tuple的集合。表示数据的流向。
- 每个stream都有一个唯一的id,如果不指定将为default。通过stream id可以定义不同流数据的去向
- Spout:数据源
- Bolt:执行处理的组件
Worker Executor task
- 一台物理机上有多个Worker,一般默认是4个
- 一个worker中会运行一个或多个Executor
- 一个Executor只会运行一种task,task数量可能有多个,但是默认是一个Executor一个task
参考:https://blog.youkuaiyun.com/weiyongle1996/article/details/77142245?utm_source=gold_browser_extension