流式计算引擎-Storm、Spark Streaming

       目前常用的流式实时计算引擎分为两类:面向行和面向微批处理,其中面向行的流式实时计算引擎的代表是Apache Storm,典型特点是延迟低,但吞吐率也低。而面向微批处理的流式实时计算引擎代表是Spark Streaming,其典型特点是延迟高,但吞吐率也高。

主流的流式数据线分四个阶段:

1、数据采集:负责从不同数据源上实时采集数据,可选包括Flume以及自定义Kafka Producer

2、数据缓冲:为了平衡数据采集速率与数据处理速率不对等。eg:Kafka

3、实时分析:流式地从数据缓冲区获取数据,并快速完成数据处理。比如:Storm和Spark Streaming

4、结果存储:将计算结果存储到外部系统,比如:大量可实时查询的系统,可存储Hbase中,小量但需要可高并发查询系统,可存储Redis。

Storm:

基本概念:

1、Tuple:由一组可序列化的元素构成。

2、Stream:无限个Tuple组成一个Stream

3、Topology:类似与MapReduce的job,由一系列Spout和Blot构成的DAG

4、Spout:Stream的数据源

5、Bolt:消息处理逻辑

基本架构:

1、Nimbus:集群的管理和调度组件

2、Supervisor:计算组件

3、Zookeeper:Nimbus和Supervisor之前的协调组件。

Spark Streaming:

基本概念:核心思想是把流式处理转化为“微批处理”,即以时间为单位切分数据流,每个切片内的数据对应一个RDD,进而采用Spark引擎进行快速计算。正是由于Spark Streaming采用了微批处理方式,因此只能将其作为近实时处理系统,而不是严格意义上的实时流式处理。

Spark Streaming 对流式数据做了进一步抽象,它将流式数据批处理化,每一批数据被抽象成RDD,这样流式数据变成了流式的RDD序列,这便是Dstream,Spark Streaming 在Dstream上定义了一系列操作,主要分两类:transformation和output,其中一个transformation操作能够将一个Dstream变换成另一个Dstream,而output操作可产生一个或一组结果,并将输出到指定外部系统中。

Spark几个组件的抽象及操作对比:

1、Spark Code 数据抽象RDD 数据操作transformation&action

2、Spark SQL 数据抽象:DataFrame、DataSet,操作:transformation&action

3、Spark Streaming:数据抽象:Dstream,操作:transformation&action

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值