架构
特点
- 简单编程模型
- 高扩展性
- 高可靠性
- 高容错性 -
nimbus不支持容错 - 支持多语言编程
- 支持本地模式
- 高性能
基本术语
-
Nimbus:Storm集群主节点,负责资源分配和任务调度 -
Supervisor:Storm集群工作节点,接受Nimbus分配任务,管理Woker -
Woker:Supervisor下的工作进程,具体任务执行 -
Task:Woker下的工作线程,0.8版本后表示逻辑线程
storm架构
-
Topology:实时计算逻辑,计算拓扑,由Spout和Bolt组成的图状结构 -
Spout:Storm编程模型中的消息源,可进行可靠传输(ack/fail机制) -
Bolt:Storm编程模型中的处理组件,定义execute方法进行实际的数据逻辑处理 -
Stream:拓扑中的消息流,传输的对象是Tuple -
Tuple:一次消息传递的基本单元
数据处理流程图
数据流分组策略Stream Groupings
-
Shuffle Grouping:随机分组,保证bolt接受的tuple数据相同 -
Fields Grouping:按字段分组,相同tuple会分到同一个bolt中 -
All Grouping:广播发送,每个tuple会发送所有bolt中 -
Global Grouping:全局分组,所有tuple发送给task_id最小的bolt -
Non Grouping:不分组,效果与Shuffle相似,发布订阅同一个线程 -
Direct Grouping:直接分组,需要手动指定bolt -
Custom Grouping:自定义分组,自己实现分组方式
yarn介绍
YARN是Hadoop在2.0中引入的资源管理系统,Hadoop的资源管理组件
-
Hadoop1.X系列MapReduce工作流程:JobTracker负责资源管理以及任务调度,TaskTracker负责监控所在机器资源以及监控task执行情况 - 架构存在的问题:
JobTracker单点故障,JobTracker负荷过重,资源单一,资源分配不合理 -
Hadoop2.X解决方案:资源管理与任务调度拆分,Yarn负责资源管理,Yarn组成::ResourceManager,NodeManager,ApplicationMaster
应用场景
流式数据处理(数据预处理、ETL等)
并行计算Top N(按字段分组计算Top,然后全局汇总)
微批处理(在时间窗口内进行批量处理)
分布式并行计算DRPC












网友评论