8 个回答
时间机制方面方面的区别:
1、Spark Streaming 支持的时间机制有限,只支持处理时间。
2、Flink 支持了流处理程序在时间上的三个定义:处理时间、事件时间、注入时间。同时也支持 watermark 机制来处理滞后数据。
发布于:3个月前 (01-22) IP属地:四川省
迭代计算方面的区别:
1、Spark对机器学习的支持很好,因为可以在内存中缓存中间计算结果来加速机器学习算法的运行。但是大部分机器学习算法其实是一个有环的数据流,在Spark中,却是用无环图来表示。
2、Flink支持在运行时间中的有环数据流,从而可以更有效的对机器学习算法进行运算。
发布于:3个月前 (01-22) IP属地:四川省
吞吐量与延迟方面的区别:
1、Spark是基于微批的,而且流水线优化做的很好,所以说他的吞入量是最大的,但是付出了延迟的代价,它的延迟是秒级;
2、Flink是基于事件的,消息逐条处理,而且他的容错机制很轻量级,所以他能在兼顾高吞吐量的同时又有很低的延迟,它的延迟能够达到毫秒级;
发布于:3个月前 (01-22) IP属地:四川省
容错机制方面的区别:
1、Spark Streaming的容错机制是基于RDD的容错机制,会将经常用的RDD或者对宽依赖加Checkpoint。利用Spark Streaming的direct方式与Kafka可以保证数据输入源的,处理过程,输出过程符合exactly once。
2、Flink 则使用两阶段提交协议来保证exactly once。
发布于:3个月前 (01-22) IP属地:四川省
任务调度方面的区别:
1、Spark Streaming 支持的时间机制有限,只支持处理时间。使用processing time模拟event time必然会有误差, 如果产生数据堆积的话,误差则更明显。
2、Flink支持三种时间机制:事件时间,注入时间,处理时间,同时支持 watermark 机制处理迟到的数据,说明Flink在处理乱序大实时数据的时候,更有优势。
发布于:3个月前 (01-22) IP属地:四川省
流处理方面的区别:
1、Spark基于微批量处理,把流数据看成是一个个小的批处理数据块分别处理,所以延迟性只能做到秒级。
2、Flink基于每个事件处理,每当有新的数据输入都会立刻处理,是真正的流式计算,支持毫秒级计算。
Spark只支持基于时间的窗口操作(处理时间或者事件时间),而Flink支持的窗口操作则非常灵活,不仅支持时间窗口,还支持基于数据本身的窗口(另外还支持基于time、count、session,以及data-driven的窗口操作),开发者可以自由定义想要的窗口操作。发布于:3个月前 (01-22) IP属地:四川省
架构方面的区别:
1、Spark在运行时的主要角色包括:Master、Worker、Driver、Executor。
2、Flink 在运行时主要包含:Jobmanager、Taskmanager和Slot。
发布于:3个月前 (01-22) IP属地:四川省
设计理念方面的区别:
1、Spark的技术理念是使用微批来模拟流的计算,基于Micro-batch,数据流以时间为单位被切分为一个个批次,通过分布式数据集RDD进行批量处理,是一种伪实时。
2、Flink是基于事件驱动的,是面向流的处理框架,Flink基于每个事件一行一行地流式处理,是真正的流式计算。另外它也可以基于流来模拟批进行计算实现批处理。
发布于:3个月前 (01-22) IP属地:四川省
我来回答
您需要 登录 后回答此问题!