streaming入门

目录

一.streaming简介

  1. 概念
  2. 特点

二.streaming系统架构

  1. storm数据处理模型(topology)
  2. 系统架构
  3. 运行流程
  4. task介绍

三.streaming关键特性

  1. HA
  2. 消息可靠些
  3. 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.运行流程

  1. client提交topology给nimbus
  2. nimbus在集群中将资源分配给supervisor
  3. supervisor接受后启动worker中的executor,对executor中的task进行执行
  4. 通过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,意味着这个拓扑失败。

发布了14 篇原创文章 · 获赞 9 · 访问量 632

猜你喜欢

转载自blog.csdn.net/TKE_Yolanda/article/details/104619015