架构
特点
- 简单编程模型
- 高扩展性
- 高可靠性
- 高容错性 -
nimbus
不支持容错 - 支持多语言编程
- 支持本地模式
- 高性能
基本术语
-
Nimbus
:Storm
集群主节点,负责资源分配和任务调度 -
Supervisor
:Storm
集群工作节点,接受Nimbus
分配任务,管理Woker
-
Woker
:Supervisor
下的工作进程,具体任务执行 -
Task
:Woker
下的工作线程,0.8版本后表示逻辑线程

-
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
网友评论