flink or spark

spark 是做批处理起家,然后以微批的形式开创了流处理。使用场景很显而易见了,允许一点延迟,批量处理,吞吐量优先地,而且spark streaming贡献者这么多依然很稳定。

flink是以流处理起家,然后以流处理的灵感去创建批处理。那就很适合实时性高的场景了。目前还是存在bug的。

这样貌似还是很抽象,就以具体场景来说吧,flink好做而spark streaming不好做的:

1.全局去重,全局聚合操作,比如distinct ,uv等业务场景。flink适合,spark streaming做起来比较麻烦,后者要借助状态算子或者第三方存储,比如redis,alluxio等。

2.开窗操作且要求同一个窗口多次输出。这个可以用flink的trigger,spark streaming比较麻烦。

3.仅一次处理。spark streaming实现仅一次处理大部分都是依赖于输出端的幂等性。而flink,可以通过其分布式checkpoint的性质结合sink的事物来实现,也即分布式两段提交协议。当然,flink也可以利用sink的幂等性来实现仅一次处理。

4.更容易实现ddl,dml等完整的sql支持,进而实现完全sql实现业务开发,类似blink。spark streaming需要微批rdd转化为表,也是一个临时小表,不是全局的。

5.状态管理。flink可以方便地使用文件后端实现大状态管理,但是频繁发作也会引发linux系统操作文件的一些bug。当然,spark streaming可以灵活的使用第三方接口比如alluxio等也很方便。

6.小点。异步IO,测输出,迭代流等。强业务相关了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值