Storm介绍及与Spark Streaming对比
1 Storm 介绍 Storm 是由 Twitter 开源的分布式、高容错的实时处理系统,它的出现令持续不断的流计算变得容易,弥补了 Hadoop 批处理所不能满足的实时要求。 Storm 常用于在实时分析、在线机器学习、持续计算、分布式远程调用和 ETL 等领域。 在 Storm 的集群里面有两种节点:控制节点 (Master Node) 和工作节点 (Worker Node) 。控制节点上面运行一个名为 Nimbus 的进程 , 它用于资源分配和状态监控;每个工作节点上面运行一个 Supervisor 的进程,它会监听分配给它所在机器的工作,根据需要启动 / 关闭工作进程。 Storm 集群架构如下图所示: 图 1 Storm 集群架构 Storm 集群中每个组件具体描述如下: l Nimbus :负责在集群里面发送代码,分配工作给机器并且监控状态,在集群中只有一个,作用类似 Hadoop 里面的 JobTracker 。 l ZooKeeper : Storm 重点依赖的外部资源, Nimbus 、 Supervisor 和 Worker 等都是把心跳数据保存在 ZooKeeper 上, Nimbus 也是根据 ZooKeeper 上的心跳和任务运行状况进行调度和任务分配的。 l Supervisor :在运行节点上,监听分配的任务,根据需要启动或关闭工作进程 Worker