Storm基础架构

Storm采用了master/slave架构,master和slave不直接通信,而是通过zookeepe间接通信,这使得Storm在容错方面特别的优异。

Storm有两种节点组成:一个控制节点和多个工作节点,控制节点上运行一个Nimbus服务,它的作用类似mapreduce中的JobTrack,Numbis负责分发任务和监控故障;

每一个工作节点上运行一个名为Supervisor的服务,它的作用是接受命令并启动和关闭工作进程,Supervisor可同时启动一定数目的Worker,每个Worker是一个进程,执行一个

Topology的一个子集,也就是说一个运行的Topology由运行在多个机器上的多个Worker进程组成,每个Work内部可以启动多个用于运行同种组件的(Spout或Blot)的Executor,

每个Executor是一个线程,可以运行某个组件的多个任务。

Numbus和Supervisor之间的所有协调工作都是通过Zookeeper集群完成。Numbis进程和Supervisor进程都是快速失败和无状态的,他们所有的状态要嘛在Zookeeper里,要嘛在本地磁盘上。这就意味着可以用kill -9来杀死Numbis和Supervisor进程,然后重启他们。这个设计是的Storm异常稳定。

Storm基础架构_第1张图片Storm基础架构_第2张图片


你可能感兴趣的:(storm)