SparkStreaming和Flink关键区别

其实大部分场景(多到4个9)下,两者没有什么差别,哪个熟练用哪个。

如果硬要究其性能差别,目前来看:

1,SparkStreaming非要凑齐一个batch才处理,

而Flink一行一处理。

2,SparkStreaming要形成RDD,这个需要时间成本略高,

而Flink后续处理的时间短。

这两点在数据量被放大,时间放长之后,造成了两者的显著差异。

但不可否认,Spark仍然是Apache至今为止最牛逼的项目,没有之一。

要说具体点,摘抄一些比较

一、流(stream)和微批(micro-batching)

微批模式 

思想:只要批次足够小,则实时性更好,需要攒批数据然后进行处理。

流模式

 

思想:所有的数据都是流。

二、数据模型不同

  • spark:采用RDD模型,spark streaming的DStream实际上也就是一组组小微批数据RDD的集合。
  • flink:数据流,以及事件序列。

三、运行时架构不同

  • spark:spark是批计算,将DAG划分为不同的stage,一个完成后才可以计算下一个。
  • flink:是标准的流执行模式,一个事件在一个节点处理完成后可以直接发往下一个节点进行处理。

在分布式spark中,假设某个节点因为数据倾斜或者其他问题而导致某个stage处理时间过长,而其他的节点也就需要等待该节点处理完成才能够进行合并计算。
在分布式flink中,所有节点的某数据,处理完成后,保存state,就可发送到下游,后续来的数据可以根据state去做合并计算。则不需要等待。




参考链接:https://www.jianshu.com/p/cb7cdce88a40

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值