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安装