Storm是个实时的、分布式以及具备高容错的计算系统。hadoop也可以大批量的数据处理的,但是不实时。
Storm在保证高可靠性的前提下还可以让处理进行的更加实时!
Storm组件:
Storm集群主要由一个主节点和一群工作节点(worker node)组成,通过 Zookeeper进行协调。
Nimbus主节点:用于响应分布在集群中的节点,分配任务和监测故障。
Supervisor工作节点:用于收听工作指派并基于要求运行工作进程。
每个工作节点都是topology中一个子集的实现。而Nimbus和Supervisor之间的协调则通过Zookeeper系统或者集群。
Zookeeper是完成Supervisor和Nimbus之间协调的服务。而应用程序实现实时的逻辑则被封装进Storm中的“topology”。topology则是一组由Spouts(数据源)和Bolts(数据操作)通过Stream Groupings进行连接的图。
- Nimbus:负责资源分配和任务调度。
- Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程。
- Worker:运行具体处理组件逻辑的进程。
- Task:worker中每一个spout/bolt的线程称为一个task. 在storm0.8之后,task不再与物理线程对应,同一个spout/bolt的task可能会共享一个物理线程,该线程称为executor。