Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Architecture Spark Streaming是否适合处理随机定时数据?_Architecture_Stream_Apache Spark - Fatal编程技术网

Architecture Spark Streaming是否适合处理随机定时数据?

Architecture Spark Streaming是否适合处理随机定时数据?,architecture,stream,apache-spark,Architecture,Stream,Apache Spark,我正在评估ApacheSpark及其Spark流媒体组件的web应用程序后端和外部API。通过这样的设置,后端将接收大量非统一计时的数据:例如,响应网站上的用户操作。编辑:在大多数情况下,我需要用户的实时响应。越快越好,但延迟1-3秒也可以。一个示例用例是请求在web UI中查看统计图的用户 从文档中,我了解到Spark Streaming的基本模型是在批处理持续时间内以相等的间隔处理数据,例如1秒左右 Spark Streaming执行的批处理可能有助于减少从前端到后端的RPC数量:从每个事件

我正在评估ApacheSpark及其Spark流媒体组件的web应用程序后端和外部API。通过这样的设置,后端将接收大量非统一计时的数据:例如,响应网站上的用户操作。编辑:在大多数情况下,我需要用户的实时响应。越快越好,但延迟1-3秒也可以。一个示例用例是请求在web UI中查看统计图的用户

从文档中,我了解到Spark Streaming的基本模型是在批处理持续时间内以相等的间隔处理数据,例如1秒左右

Spark Streaming执行的批处理可能有助于减少从前端到后端的RPC数量:从每个事件一个减少到每秒一个

但除此之外,这种架构似乎还有缺陷:

以固定的时间间隔处理事件,而不是在事件发生时处理。 Spark流媒体程序中稍微不寻常的控制流: doSparkStreaming() { <define processing on data; unclear how it gets called later> streamingContext.start(); streamingContext.awaitTermination(); } 在用户长时间不活动期间对数据源进行不必要的轮询。 我倾向于不使用它。我是不是错过了什么


非常感谢。

您的分析是正确的:目前形式的ApacheSpark可能不是最佳选择。我建议改为使用排队系统,例如卡夫卡,或者可能使用基于卡桑德拉/风暴的方法。

您正在考虑哪些用例?这一切都取决于用例。这里没有足够的信息来做出决定,我能从中看出的是,您的用例得到的数据不是统一计时的。我甚至不确定流媒体是否适合这种模式,虽然已经有了答案,但我认为如果您提供更多使用细节,您可能会收到更好的答案case@aaronman,maasg:谢谢-我在第一段中增加了延迟要求1-3秒和用例交互web UI。您认为呢?我是否正确理解您希望使用spark streaming或类似工具来接收网页请求并传递数据?被称为“时间不统一”的是那些用户请求?请求的数据是什么?它存放在哪里?@maasg:是的,没错。我们意识到这不是标准的体系结构,我们只考虑Spark流,因为我们也有很多周期计算的用例,没有任何延迟要求。另外,Spark有一个机器学习库,并与分布式DBs集成,我们肯定需要这样或那样的方式。整个系统用于业务流程监控/分析。你认为,根据我问题中所述的要求,我们应该寻找其他东西吗?我不确定你如何证明这个答案,spark streaming绝对可以用于跟踪用户activity@aaronmanOP指出了在这个用例中使用Spark的问题。Spark streaming并不是实时和/或不稳定事件的完美匹配——这正是OP中的内容。你说的是用户活动——太广泛了,无法用作评论。取而代之的是关注交付率和规律性以及所需的报告延迟。spark streaming绝对是实时处理数据的,他没有指定是否需要实时响应,尽管有spark的实时使用。至于你的建议,卡夫卡主要是为了获取日志,而不是进行实际计算,与spark相比,storm的模型非常有限,因此如果他需要任何类型的复杂数据流,storm就出局了。我对卡桑德拉不太了解,它看起来确实是一个可能的选择,但即使如此,spark实际上也有一个连接卡桑德拉的连接器,使其更易于使用。最后,最后一条评论的空间不足非统一计时数据有点无意义和模糊,除非数据来自某种自动化过程,否则它不会是统一的,也没有理由认为spark streaming只能处理这种情况对不起,让你读这封信,我注意到你说的是cassandra/storm方法,所以我收回我对storm的评论,但其他一切仍然有效