Storm概念解析

Storm 是什么
  • Storm 是一个分布式的,可靠的,容错的流式计算框架

  • Storm 可以实时可靠的处理流数据,在实时分析/性能监测等需要高时效性的领域广泛采用

  • Storm把集群的状态存在Zookeeper或者本地磁盘,所以后台进程都是无状态的(不需要保存自己的状态,都在zookeeper上),可以在不影响系统健康运行的同时失败或重启

  • Storm可应用于–数据流处理、持续计算(持续地向客户端发送数据,它们可以实时的更新以及展现数据,比如网站指标)、分布式远程过程调用(轻松地并行化CPU密集型操作)

Storm 和 Hadoop 对比
Storm Hadoop
实时的流处理框架 批量处理
基于ZooKeeper的 master/slave 结构;master被称为nimbus,slaves被称为supervisors master-slave结构,不依赖于ZooKeeper;master节点是任务调度者,slaves节点是任务执行者
Storm 集群能够每秒处理成千上万的信息 hdfs利用MapReduce进行大批量数据的离线计算
Storm 一旦运算开始将不会停止,除非杀死进程 MapReduce按指定顺序完成作业
如果nimbus/supeervisors集群中某一节点挂掉,重新启动后任务将会从上次断开处继续执行 如果作业调度者死亡,所有作业将消失
Storm 中的一些基本概念
组件 描述
Tuple tuple 是Storm中的主要数据结构(数据的基本单位),是一个有序元素的集合。tuple 支持所有的数据类型
Stream 一组无序的 tuple
Spout 数据源头。负责接收外部数据封装为数据源以供集群中的Bolt使用
Bolt 逻辑处理单元,是计算的核心,负责计算从Spout源头传过来的数据,并将结果进行输出
Topology 将Spout和Bolt关联在一起的拓扑结构,使其具备实时处理能力,相当于MapReduce
Task 负责执行Spout和Bolt的引擎
Executor 执行线程,执行task任务
Worker 工作进程,管理分配作业线程
Stream grouping Storm的流分组。控制tuple的流向策略(从Spout流向Bolt,或者从Bolt流向其他Bolt,都可以选择不同的分组策略进行控制)

下图是Storm的处理流程:

image

Storm 集群中的进程
进程 描述
nimbus 管理节点进程
supervisor 从属节点进程
worker 工作进程
core ui进程
logviewer 日志进程

下图是各进程的关系:

image

参考

猜你喜欢

转载自blog.csdn.net/king123456man/article/details/82968314