码迷,mamicode.com
首页 > 其他好文 > 详细

Spark学习(4) Spark Streaming

时间:2019-11-21 13:56:11      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:lamport   point   man   外部   离散   语义   snap   check   font   

什么是Spark Streaming

Spark Streaming类似于Apache Storm,用于流式数据的处理
Spark Streaming有高吞吐量和容错能力强等特点。Spark Streaming支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等
数据输入后可以用Spark的高度抽象原语如:map、reduce、join、window等进行运算。而结果也能保存在很多地方,如HDFS,数据库等
Spark Streaming也能和MLlib(机器学习)以及Graphx完美融合
和Spark基于RDD的概念很相似,Spark Streaming使用离散化流(discretized stream)作为抽象表示,叫作DStream。DStream 是随时间推移而收到的数据的序列
DStream 可以从各种输入源创建,比如 Flume、Kafka 或者 HDFS。创建出来的DStream 支持两种操作,一种是转化操作(transformation),会生成一个新的DStream,
另一种是输出操作(output operation),可以把数据写入外部系统中。DStream 提供了许多与 RDD 所支持的操作相类似的操作支持,还增加了与时间相关的新操作,比如滑动窗口

目前流行的三种实时框架对比

Apache

Flink

SparkSteaming

Storm

架构

架构介于spark和storm之间,主从结构与sparkStreaming相似,DataFlow Grpah与storm相似,数据流可以被表示为一个有向图,每个顶点是一个定义的运算,每向边表示数据的流动

Native

架构依赖Spark,主从模式,每个batch批次处理都依赖driver主,可以理解为时间维度上的spark DAG

Micro-Batch

主从模式,且依赖ZK,处理过程中对主的依赖不大

Native

容错

基于Ghandy-Lamport distributed snapshots checkpoint机制

Medium

WALRDD血统机制

High(高)

Records Ack

Medium(一般)

处理模型与延时

单条时间处理

亚秒级低延时

一个事件窗口内的所有事件

秒级低延时

每次传入的一个事件

亚秒级低延时

吞吐量

High

High

Low(低)

数据处理保证

Exactly once

High

Exactly once(实现架用Chandy-Lamport算法,即marker-checkpoint)

High

At least once(实现架用record-level acknowledgments),Trident可以支持storm提供exactly once语义

Medium

高级API

Flink,栈中提供了很多高级API和满足不同场景的类库:机器学习、图分析、关系式数据处理

High

能够很容易的对接Spark生态圈里面的组件,同时额能够对接主流的消息传输组件及存储系统

High

应用需要按照特定的storm定义的规模编写

Low

易用性

支持SQL StreamingBatchStreaming采用统一编程框架

High

支持SQL StreamingBatchStreaming采用统一编程框架

High

不支持SQL Streaming

Medium

成熟性

新兴项目,处于发展阶段

Low

已经发展一段时间

Medium

相对较早的流系统,比较稳定

High

部署性

部署相对简单,只依赖JRE环境

Low

部署相对简单,只依赖JRE环境

Low

依赖JRE环境和ZK

High

     

 

 

 

 

Spark学习(4) Spark Streaming

标签:lamport   point   man   外部   离散   语义   snap   check   font   

原文地址:https://www.cnblogs.com/cheng5350/p/11903655.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!