首页 > 代码库 > storm学习

storm学习

一 storm 相关术语

1 . Nimbus
storm 集群主节点,负责资源分配和任务调度。(相当于namenode)

2. supervisor

storm集群工作节点,接受Nimbu分配任务,管理worker

3.worker

supervisor 下的工作进程,具体任务执行,一个worker通常对应一个jvm

4 task

worker下的工作线程,0.8版本之后表示逻辑线程。

5 topology

实时计算逻辑,计算拓扑,由spout 和bolt 组成的图形结构

6.spout

storm 编程模型中的消息源, 可进行可靠传输(ack/fail机制)

7.bolt

storm 变成模型中的处理组件,定义execute方法进行实际的数据逻辑处理。

8. steam

拓扑中的消息流, 传输的对象是tuple.

9.Tuple

一次消息传递的基本单元

10.stream groupings数据流分组策略

(1)shuffle grouping: 随机分组,保证blot接受的tuple数据相同。

(2)fields grouping: 按字段分组, 相同tuple 会分到同意blot中

 

二 storm集群架构图

技术分享

 

2. 数据处理流程

技术分享

 

3. 拓扑图分析

技术分享

 

storm主要特点

1. 简单的编程模型
提供了简单的spout + bolt的变成模型,让普通的java工程师也能快速的、高效的写出高并发实时处理任务,大大的降低了相关业务处理的研发成本。

2.高扩展性
1)支持节点的水平扩展,支持千级节点的扩展
2)工作进程的扩展,每个工作节点可以有多个工作进程
3)每个工作进程 可以创建多个线程
4)每个线程又可以执行多个任务,任务才是真正进行数据处理的实体;

3.高可靠性
消息以消息树的形式存在,提供ack/fail消息保存机制

4.高容错性
1)节点级别的容错
2)worker 级别的容错, 不支持nimbug容错

5. 支持多语言编程
支持java ,python

6.支持本地模式
storm开发流程是,编写好storm程序后,编译成jar包,并且提交到nimbus上执行。 本地模式 模拟storm集群模式,进行调试。

7.高性能
内部通讯采用zeroMQ通讯,保证消息被快速处理

 

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

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

 

storm安装

 

storm学习