gpt4 book ai didi

apache-spark - 在实践中,迷你批处理与实时流之间有什么区别(不是理论上的区别)?

转载 作者:行者123 更新时间:2023-12-03 21:16:44 24 4
gpt4 key购买 nike

在实践中,迷你批处理与实时流之间有什么区别(不是理论上的区别)?从理论上讲,我了解到迷你批处理是在给定的时间范围内进行批处理,而实时流更像是在数据到达时执行某些操作,但是我最大的问题是为什么不使用带有epsilon时间帧(例如一毫秒)的迷你批处理?想了解为什么一个解决方案比其他解决方案有效的原因?

最近,我遇到了一个示例,其中微型批处理(Apache Spark)用于欺诈检测,而实时流处理(Apache Flink)用于欺诈预防。有人还说,迷你批处理不是防止欺诈的有效解决方案(因为目标是防止交易在发生时发生)现在,我想知道为什么迷你批处理(Spark)不会那么有效?为什么以1毫秒的延迟运行迷你批处理没有效果?批处理是一种在操作系统和内核TCP / IP堆栈等处广泛使用的技术,在该技术中确实缓存了磁盘或网络上的数据,因此说服力在说什么比另一个更有效?

最佳答案

免责声明:我是Apache Flink的提交者和PMC成员。我熟悉Spark Streaming的总体设计,但不了解其内部细节。

Spark Streaming实现的小批量流处理模型的工作方式如下:


流的记录收集在缓冲区(微型批处理)中。
定期使用常规Spark作业处理收集的记录。这意味着,对于每个小型批生产,将计划并执行完整的分布式批处理作业。
在作业运行时,将收集下一批的记录。


那么,为什么每1ms运行一次迷你批处理没有效果?仅仅因为这意味着每毫秒调度一次分布式批处理作业。即使Spark在调度作业方面非常快,但这也太多了。这也将大大降低可能的吞吐量。如果OS或TCP中的批处理量变得太小,它们也无法很好地工作。

关于apache-spark - 在实践中,迷你批处理与实时流之间有什么区别(不是理论上的区别)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39715803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com