1.Storm的总体结构
Storm中设计的术语包括 Stream、Spout、Bolt、Worker、Executor、Task、Stream Grouping 、Topology,基本概念如下:
- Stream是被处理的数据
- Spout是数据源
- Bolt封装了数据处理逻辑
- Worker是工作进程。一个工作进程包含一个或多个Executor线程
- Executor是运行Spout或Bolt处理逻辑的线程
- Task是Storm中的最小处理单元。一个Executor中包含一个多个Task,消息的分发都是从一个Task到另一个Task进行的
- Stream Grouping 定义了消息分发策略,定义了Bolt节点以何种方式接收数据。消息可以随机分配(Shuffle Grouping,随机分组),或者根据字段值分组(Fields Grouping,字段分组),或者广播(All Grouping,全局分组),也可以不关心数据是如何分组的(None Grouping,无分组),或者由自定义逻辑来决定,即有消息发送者决定应该有消息接收者组件的那个Task来处理消息(Direct Grouping,直接分组)
- Topology是由消息分组方式连接起来的Spout和Bolt的节点网络,它定义了运算逻辑的拓扑结构,处理的是不断流动的消息。除非杀掉Topology,否则它将永远运行下去。
1.1 Spout与Bolt关系
2.Storm中的节点
2.1
Storm集群中存在两种类型的节点。
运行Nimbus服务的主节点和运行Supervisor服务的工作节点。
Storm集群由一个主节点和多个工作节点组成。
主节点上运行一个名称“Nimbus”的守护进程,用于分配代码、布置任务及检测故障。
每个工作节点则运行一个名称“Supervisor”的守护进程,用于监听工作、开始并终止工作进程。
Nimbus和Supervisor都能快速失败并恢复,而且他们是无状态的,其元数据存储在Zookeeper中,这使得系统具有很高的容错性。Nimbus与Supervisor之间的协调工作是通过Zookeeper来完成的。
Worder由Supervisor来启动,一个Worker中可以有多个Executor线程,每个Executor中又可以包含一个或多个Task。Task为Storm中最小处理单元。它是Topology组件诸多并行度中的一个。每个Executor都会启动一个消息循环线程,用于接受、处理和发送消息。当Executor接收到属于其下某一个Task的消息后,就会调用该Task对应的处理逻辑对消息进行处理。
在逻辑上,Storm中消息的来源节点被称为Spout,消息的处理节点被称为GBolt.在系统中,可以存在多个Spout和Bolt,且每个Spout和Bolt都可以设置不同的并行度。
2.1 关系
3.开发过程中常用的类
- BaseRichSpout (消息生产者)
- BaseBasicBolt (消息处理者)
- TopologyBuilder (拓扑的构建器)
- Values (将数据存放到values ,发送到下个组件)
- Tuple(发送的数据被封装到Tuple,可以通tuple接收上个组件发送的消息)
- Config (配置)
- StormSubmitter / LocalCluster (拓扑提交器)
参考书籍:
1.《Storm源码分析》李明、王晓鹏编著,人民邮电出版社
2.其他网络资源
- 大小: 54.5 KB
- 大小: 18 KB
- 大小: 30.1 KB
分享到:
相关推荐
精通Ajax——基础概念、核心技术与典型案例 人民邮电出版社 本书主要介绍Ajax技术的组成元素,涉及JavaScript、CSS、DOM、XMLHTTP和XML等内容,其中详细介绍了JavaScript客户端语言,它是Ajax技术的核心组成,是...
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多...
《新概念900句基础篇》是一款专为英语学习者设计的移动英语课程资源,旨在帮助用户通过听、说、练的方式扎实掌握英语基础知识。该课程以900个常用句子为核心,覆盖日常生活、工作及学习场景,是提高英语听说能力的...
这是一篇讲解机器视觉的基础型学习资料,教您如何选型相机与镜头。里面介绍了光学放大倍率 ,工作距离, WD ,焦距,f ,景深,DOF ,分辨率, Resolution ,镜头接口 ,数值孔径, NA ,F数, F No/f-number ,最大兼容...
总体来说,新东方新概念英语第一册是一套全面的初级英语教程,不仅教授词汇和语法,更注重语音训练和实用语境下的表达,旨在帮助学习者全面提升英语听说读写能力,为更高阶段的学习打下坚实基础。通过这样的系统学习...
java与web基础概念
基于STM32节点和阿里云IoT平台 的物联网应用开发 系列课程 第二章 阿里云IoT平台介绍 课程内容下载、观看 • 视频观看:AI电堂、阿里云大学IoT课堂 ...• 第二节:物联网平台基础概念讲解 • 介绍设备与平台相关概念
第一讲:PR的软件介绍与基础概念.xmind
本资源是关于一级注册结构工程师基础部分的考试大纲,涵盖了高等数学、普通物理、普通化学、建筑材料、理论力学、材料力学、结构力学、流体力学、土力学与地基基础、工程测量、结构设计、建筑施工与管理、结构试验、...
LoRa技术讲义 - 第一篇:基础概念与原理.md
新东方新概念英语学习笔记是英语学习者们的一份宝贵资料,它涵盖了新概念英语教材的全部四个级别,从第一册的基础入门到第四册的高级进阶,为学习者提供了全面而深入的学习指导。这份资源的出现,无疑为英语学习者...
C#入门级的书籍 本书重点讲解OOP的概念性问题 结合大量代码示例 详细讲解了什么是类 对象 属性 字段 方法 构造方法 析构 是一本相当好用的C#基础学习书籍 如果想对OOP中的概念有较全面的了解的话 那么这本书就足够你...
"中职数学基础模块下册数列的概念PPT学习教案.pptx" 本PPT学习教案旨在帮助学生理解数列的概念,通过创设情景、引入概念、观察归纳、讨论探究、深化概念、巩固新知等步骤,逐步引导学生掌握数列的定义、分类、表示...
惯性导航的基础概念包括向量与矩阵计算、四元数与方向余弦、比力方程及舒勒原理等。 向量与矩阵计算是惯性导航的基础数学工具。一个向量可以表示为列矩阵形式,例如,地面某点至地心的位置向量可以写成如下形式: ...
第一册《新概念英语1》(nce1)主要是为初学者设计的,它以日常生活情境中的简单对话和短文为主,帮助学习者建立起基本的英语语感和词汇基础。TXT格式的文件让你能够轻松查阅每个课时的内容,无论是在电脑、手机还是...
标题中的“基础概念篇”可能指的是对信息技术领域中的一些基本概念进行阐述,这些概念是学习和理解IT技术的基础。在IT行业中,基础概念包括但不限于计算机硬件、操作系统原理、编程语言、网络通信、数据库管理、数据...
"北师大版七年级数学上册第二章《有理数及其运算》基础概念练习题.doc" 本资源是北师大版七年级数学上册第二章《有理数及其运算》基础概念练习题,旨在帮助学生了解有理数的定义、性质和运算。以下是相关知识点的...
大数据基础知识的思维导图