其他分享
首页 > 其他分享> > strom

strom

作者:互联网

一,strom简介

1,Strom特点

进程常驻内存,数据不经过磁盘,在内存中处理,速度非常快,可以达到毫秒(秒)级别

Twitter开源的分布式实时大数据处理框架,最早开源于github

2013年,Storm进入Apache社区进行孵化
2014年9月,晋级成为了Apache顶级项目

国内外各大网站使用,例如雅虎、阿里、百度

2,Storm数据传输

 ZMQ(twitter早期产品):ZeroMQ 开源的消息传递框架,并不是一个MessageQueue

Netty:Netty是基于NIO的网络框架,更加高效。(之所以Storm 0.9版本之后使用Netty,是因为ZMQ的license和Storm的license不兼容。)

3,Storm可靠性

异常处理

消息可靠性保障机制(ACK)

4,Strom和其他框架的对比

1.Spark-Streaming: 微批处理框架 秒级,不是纯流式计算框架和Spark核心之上的计算模型,和Spark的其他组件兼容较好。   2.MR 批处理框架,为TB、PB级别数据设计的批处理计算框架。分钟级别,MR模型,反复启停。
3.Strom 秒(毫秒)级别,专门为流式处理设计,数据传输模式更为简单。很多地方也更为高效。并不是不能做批处理,它也可以来做微批处理,来提高吞吐。进程、线程常驻内存运行,数据不进入磁盘,数据通过网络传递。

二,Storm编程模型

 1,Spout(数据源):用于持续不断的发送数据    2,Tuple:数据都被封装进tuple容器,进行传输,Storm中发送数据的基本单元,Tuple不断的向后传输,像水滴一样    3,Bolt:用于接受并处理数据    4,Stream:从Spout中源源不断传递数据给Blot,以及上一个Blog传递数据给下一个Blot,所组成的数据通道叫做Stream,Stream默认的名称为default,可以为其指   定id。    5,Topology – DAG:有向无环图的实现。对于Storm实时计算逻辑的封装。即,由一系列通过数据流相互关联的Spout、Bolt所组成的拓扑结构

  生命周期:此拓扑只要启动就会一直在集群中运行,直到手动将其kill,否则不会终止(区别于MapReduce当中的Job,MR当中的Job在计算执行完成就会终止)

三,Storm架构模型

 

 1.Nimbus 主节点的守护进程

2.Supervisor 从节点的守护进程,具体完成计算工作
接受NimBus分配的任务->监视ZK节点看是否有分配给自己的任务

启动、关闭自己管理的Worker进程,可以有多个Worker进程,Work进程的数量由配置文件设定,配置文件是Client上传jar包的配置文件,即由Client指定。

3.Worker 从节点的工作进程
由Supervisor控制启动关闭,专门用于计算,所有的拓扑作业在Worker上运行。

运行具体运算组件的进程,一个topology可能会在一个或者多个worker(工作进程)里面执行。

Worker任务的类型只有两种, Spout和Bolt。

Executor是Worker JVM内部的一个线程,一般每个Executor负责运行一个或多个任务,但仅用于特定的spout或bolt。但一般默认
每个executor只执行一个task。

Worker中可以启动多个线程Executor,执行特定的spout对应的多个task任务,提高并行度,但是注意每个task的taskid不一致,taskid起到了区分作用。

4.Zookeeper
替代了部分Nimbus的作用,也是目前storm是不支持nimbus高可用的但能保证系统不受太大影响的一个支撑。

Zookeeper本身已经是按至少三台部署的HA架构了。Supervisor进程和Nimbus进程,需要用Daemon程序如monit来启动,失效时自动重新启动。因为它们在进程内都不保存状态,状态都保存在本地文件和ZooKeeper,因此进程可以随便杀。

如果Nimbus进程所在的机器都直接倒了,需要在其他机器上重新启动,Storm目前没有自建支持,需要自己写脚本实现。即使Nimbus进程不在了,也只是不能部署新任务,有节点失效时不能重新分配而已,不影响已有的线程。同样,如果Supervisor进程失效,不影响已存在的Worker进程。

四,Storm 架构设计与Hadoop架构对比

五,Storm 任务提交流程

 

 

 

链接:https://www.jianshu.com/p/76810a56cc5d

标签:批处理,框架,Nimbus,Worker,进程,Storm,strom
来源: https://www.cnblogs.com/dongchao3312/p/13533259.html