Storm主要分为两种组件Nimbus和Supervisor。这两种组件都是快速失败的,没有状态。任务状态和心跳信息等都保存在Zookeeper上的,提交的代码资源都在本地机器的硬盘上。
- Nimbus负责在集群里面发送代码,分配工作给机器,并且监控状态。全局只有一个。
- Supervisor会监听分配给它那台机器的工作,根据需要启动/关闭工作进程Worker。每一个要运行Storm的机器上都要部署一个,并且,按照机器的配置设定上面分配的槽位数。
- Zookeeper是Storm重点依赖的外部资源。Nimbus和Supervisor甚至实际运行的Worker都是把心跳保存在Zookeeper上的。Nimbus也是根据Zookeerper上的心跳和任务运行状况,进行调度和任务分配的。
- Storm提交运行的程序称为Topology。
- Topology处理的最小的消息单位是一个Tuple,也就是一个任意对象的数组。
- Topology由Spout和Bolt构成。Spout是发出Tuple的结点。Bolt可以随意订阅某个Spout或者Bolt发出的Tuple。Spout和Bolt都统称为component。
下图是一个Topology设计的逻辑图的例子。
下图是Topology的提交流程图。
下图是Storm的数据交互图。可以看出两个模块Nimbus和Supervisor之间没有直接交互。状态都是保存在Zookeeper上。Worker之间通过ZeroMQ传送数据。
虽然,有些地方做得还是不太好,例如,底层使用的ZeroMQ不能控制内存使用(下个release版本,引入了新的消息机制使用netty代替ZeroMQ),多语言支持更多是噱头,Nimbus还不支持HA。但是,就像当年的Hadoop那样,很多公司选择它是因为它是唯一的选择。而这些先期使用者,反过来促进了Storm的发展。
特性
-
- 使用kryo作为Tuple序列化的框架(0.6.0)
- 添加了Transactional topologies(事务性拓扑)的支持(0.7.0)
- 添加了Trident的支持(0.8.0)
- 引入netty作为底层消息机制(0.9.0)
Transactional topologies和Trident都是针对实际应用中遇到的重复计数问题和应用性问题的解决方案。
相关推荐
初识C++ 初识C++ 初识C++初识C++初识C++初识C++初识C++
初识云计算初识云计算初识云计算初识云计算初识云计算初识云计算初识云计算初识云计算
python 列表初识,通过此代码,你能够了解到python的列表操作
jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识...
三年级信息技术课程《初识画图》课件内容 因为要参加比赛,所属机房 装不上
初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识...
初识C语言.pdf
"初识计算机PPT课件" 计算机的基本概念: 计算机是一种电子设备,能够执行用户的指令,进行数据处理和存储。计算机的种类很多,可以分为台式计算机、便携式计算机、掌上计算机等。 台式计算机: 台式计算机是一...
初识ERP初识ERP
【初识Excel教学设计】 Excel是一款广泛应用于数据管理和分析的电子表格软件,对于初学者来说,理解其基本功能和操作是至关重要的。本教学设计针对初中信息技术课程,旨在引导初一学生逐步熟悉Excel,帮助他们建立...
初识数据安全系列语音教程
这个“MATLAB初识神经网络”视频教程是为那些想要入门神经网络学习者设计的,它将引导你逐步了解神经网络的基本概念和MATLAB中的实现方法。 神经网络,作为人工智能的重要分支,模仿了人脑的结构和功能,通过大量的...
本课是中学信息技术-_《初识Excel》PPT课件.ppt 的课件
初识EXCEL 教案 多媒体课件教师上课专用
标题中的“初识A*寻路算法”表明我们要探讨的是计算机科学中的一种路径搜索算法——A*(A-star)算法。A*算法是Dijkstra算法的优化版本,广泛应用于游戏开发、地图导航、网络路由等领域,它通过引入启发式信息来实现...
【初识电脑朋友课件】是一份专为初学者设计的信息技术入门教程,旨在帮助初次接触电脑的朋友快速理解和掌握基本的计算机操作技能。这个课件可能涵盖了从打开电脑到使用各种常见软件的全面内容,是学习电脑基础知识的...
#### 实验一:Windows 进程初识 ##### 实验目的 1. **学会使用VC编写基本的Win32 Console Application(控制台应用程序)**: - 通过本实验,学生将了解如何在Visual C++ 6.0环境中创建控制台应用程序。 - 掌握...
### 数据结构的基本概念 数据结构是计算机存储、组织数据的方式。它旨在使数据的存取和处理更加高效。数据结构通常由数据对象和数据关系两部分构成。数据对象是指具有相同数据类型的元素的集合;...
第01讲 初识Java.ppt