目录
一.streaming简介
概念
特点
二.streaming系统架构
storm数据处理模型(topology)
系统架构
运行流程
task介绍
三.streaming关键特性
HA
消息可靠些
ACK机制
一.streaming简介
1.概念
streaming:是一个计算框架,基于开源storm
storm:是一个实时处理,流式处理的引擎。它是独立的(spark是基于hadoop的),开源的,免费的。
微批处理:spark 批处理:mapreduce
storm是流式处理的:数据来一条就处理一条(打开后一直运行,手动kill进程,进程才会结束)
2.特点
分布式:数据分布给多个节点并行处理
2. 实时:来一条数据处理一条
二.streaming系统架构
1.storm数据处理模型(topology)
spout:数据产生的源头
tuple:数据单元
bolt:数据处理单元,每一个bolt实现不同的处理方式
一个Topology是由一组Spout组件(数据源)和Bolt组件(逻辑处理)通过Stream Groupings进行连接的有向无环图(DAG)
2.系统架构
nimbus:管理者,进行资源的分配,管理
supervisor:工作者,实际执行任务的
worker:进程
excutor:线程→由task(spout和bolt对tuple进行处理)执行
zookeeper:监控,主备选举(nimbus),通过心跳线对组件状态进行监控
stream:topology中的每一条线就是一个stream
3.运行流程
client提交topology给nimbus
nimbus在集群中将资源分配给supervisor
supervisor接受后启动worker中的executor,对executor中的task进行执行
通过zookeeper上报状态
4.task介绍
在一个单独的Worker进程中会运行一个或多个Executor线程。,task在excutor中执行
一个bolt/spout可以在多个worker的多个excutor里面运行
默认情况下,一个excutor对应一个task
三.streaming关键特性
1.HA
容灾能力(类似重建副本机制):当一个节点中的拓扑故障时,会自动迁移到别的正常节点进行运行。保证任务不会中断。
2.消息可靠性
在streaming里面一个tuple被完全处理的意思是:这个tuple以及由这个tuple所派生的所有的tuple都被成功处理。如果这个消息在Timeout所指定的时间内没有成功处理,这个tuple就被认为处理失败了。
3.ACK机制
Streaming里面有一类特殊的task称为:acker, 他们负责跟踪spout发出的每一个tuple的tuple树。
spout(数据源)每产生一个tuple都会产生一个随机数1(64位),然后告诉acker(原本校验值为0,每产生一个tuple就会更新校验值)
tuple交给bolt2处理,bolt2也会给acker发送另一个随机数2
acker对随机数1、2进行计算,如果成功的话,校验值最终还是会为0。如果校验值不为0,意味着这个拓扑失败。
想了解更多IT知识,推荐你关注腾科教育.