STORM学习笔记:拓扑结构与任务分配解析
需积分: 10 40 浏览量
更新于2024-09-12
收藏 401KB DOCX 举报
"STORM学习文档——个人学习storm的笔记,包括storm与kafka的集成,以及storm集群的工作原理和拓扑提交过程的解析。"
在深入理解Apache Storm的过程中,我们需要掌握以下几个关键知识点:
1. **Storm拓扑结构**:
拓扑(Topology)是Storm的核心概念,它定义了数据流的处理逻辑。在提供的内容中,提到的拓扑包含了两个工作进程(Worker),每个工作进程有5个执行器(Executor),总共有12个任务。执行器是线程池,它们负责执行任务。任务是实际的数据处理逻辑,如Bolt或Spout。在本例中,GreenBolt的执行器被分配了2个任务。
2. **Nimbus与Zookeeper的交互**:
Nimbus是Storm的主控节点,负责任务调度和监控。它不依赖于Zookeeper的事件通知,而是通过定期轮询Zookeeper来获取集群状态,例如Supervisor的加入和退出。这种设计使得Nimbus可以主动获取信息,而不是被动等待,提高了系统的响应速度。
3. **Supervisor角色**:
Supervisor是Storm集群中的工作节点,它管理多个Worker进程。每个Supervisor通过Zookeeper获取需要执行的任务,并启动或停止Worker来执行这些任务。Worker是实际运行拓扑任务的Java进程。Supervisor通过`sync-processes`来控制Worker的生命周期,并通过Zookeeper监控Worker的状态,确保它们正常发送心跳。
4. **Worker与Task的关系**:
Worker是由Supervisor启动的Java进程,它们执行由Nimbus分配的任务。任务是平均分配到各个Executor中的,Executor可以在一个进程中运行多个任务。在描述的例子中,如果未指定任务数,一个Executor通常只执行一个任务,但如果有指定,任务会被平均分给Executor。
5. **Topology提交流程**:
当用户提交一个Topology到Storm集群时,Nimbus接收这个请求,然后将拓扑分解为任务分配给Supervisors。Supervisors收到任务后,启动Worker执行这些任务。在这个过程中,Nimbus扮演的是调度员的角色,而Supervisors则是执行任务的车间主任。当Supervisor收到“收工”指令时,Worker会进入待命状态,而不是立即停止处理数据。
6. **Kafka集成**:
Storm可以与Kafka集成,实现实时数据流处理。通常,我们可以使用KafkaSpout从Kafka主题中消费消息,然后通过一系列的Bolt进行处理,最后将结果写入其他系统或存储。这种集成使得Storm能够高效地处理来自Kafka的持续数据流。
理解这些核心概念对于有效地使用和部署Storm进行实时大数据处理至关重要。Storm的设计使得它能够处理高吞吐量的数据流,并提供容错性和可扩展性,使其成为实时计算领域的重要工具。
2021-01-27 上传
2017-09-03 上传
2019-08-05 上传
2018-09-17 上传
2021-05-10 上传
一路乘风向前进
- 粉丝: 40
- 资源: 48
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜