storm学习

时间:2022-12-28 06:31:48

一 storm 相关术语

 . Nimbus
storm 集群主节点,负责资源分配和任务调度。(相当于namenode) . supervisor storm集群工作节点,接受Nimbu分配任务,管理worker .worker supervisor 下的工作进程,具体任务执行,一个worker通常对应一个jvm task worker下的工作线程,.8版本之后表示逻辑线程。 topology 实时计算逻辑,计算拓扑,由spout 和bolt 组成的图形结构 .spout storm 编程模型中的消息源, 可进行可靠传输(ack/fail机制) .bolt storm 变成模型中的处理组件,定义execute方法进行实际的数据逻辑处理。 . steam 拓扑中的消息流, 传输的对象是tuple. .Tuple 一次消息传递的基本单元 .stream groupings数据流分组策略 ()shuffle grouping: 随机分组,保证blot接受的tuple数据相同。 ()fields grouping: 按字段分组, 相同tuple 会分到同意blot中

二 storm集群架构图

storm学习

2. 数据处理流程

storm学习

3. 拓扑图分析

storm学习

storm主要特点

. 简单的编程模型
提供了简单的spout + bolt的变成模型,让普通的java工程师也能快速的、高效的写出高并发实时处理任务,大大的降低了相关业务处理的研发成本。 .高扩展性
)支持节点的水平扩展,支持千级节点的扩展
)工作进程的扩展,每个工作节点可以有多个工作进程
)每个工作进程 可以创建多个线程
)每个线程又可以执行多个任务,任务才是真正进行数据处理的实体; .高可靠性
消息以消息树的形式存在,提供ack/fail消息保存机制 .高容错性
)节点级别的容错
)worker 级别的容错, 不支持nimbug容错 . 支持多语言编程
支持java ,python .支持本地模式
storm开发流程是,编写好storm程序后,编译成jar包,并且提交到nimbus上执行。 本地模式 模拟storm集群模式,进行调试。 .高性能
内部通讯采用zeroMQ通讯,保证消息被快速处理

storm与 yarn结合 ,storm 运行在yarn之上

) 资源的弹性计算
) 共享底层存储
) 支持多版本共存
) 整体架构的统一

storm安装