星火流调度的最佳实践

问题描述 投票:1回答:2

我们有运行,每30分钟,并采取15秒完成作业的火花流作业。什么是建议在此情况下的最佳实践。我想我可以安排AWS datapipeline运行每30分钟,使EMR 15秒后结束,将被重建。它是推荐的方法?

pyspark spark-streaming amazon-emr amazon-kinesis aws-data-pipeline
2个回答
1
投票

对于需要15 seconds上运行EMR它是浪费时间和资源工作,你可能会等待几分钟的EMR集群来引导。

AWS数据管道或AWS批才有意义只有当你有一个长期运行的工作。

首先,确保你真的需要从你描述它可能是矫枉过正,因为火花。

LAMBDA与CloudWatch的事件调度可能是你所需要的东西这么快的工作,没有基础设施的管理。


0
投票

对于流媒体相关的工作 - >关键是避免IO在你的情况 - 作为作业似乎只需要15秒。把你的消息队列(AWS SQS)。具有通过CloudWatch的事件触发的AWS阶跃函数(在你的情况下,每30分钟实现比如cron时间表 - 调用一个AWS步骤功能)从SQS读取消息,并在拉姆达理想处理它们。

所以一个选项(无服务器):

流消息 - > AWS SQS - >(每30分钟的CloudWatch触发一个阶跃函数) - >触发一个lambda服务来处理队列中的所有消息

https://aws.amazon.com/getting-started/tutorials/scheduling-a-serverless-workflow-step-functions-cloudwatch-events/

选项2:

流消息---> AWS SQS - >使用具有预定任务的是唤醒每30分钟,并从队列中读取的消息并在内存中处理它Python应用程序/爪哇Spring应用程序过程的消息。

我已经用于解决分析问题的选项2,虽然我的分析问题,用了10分钟,是数据intensive.Option 2此外,需要监控的地方运行进程的虚拟机(容器)。在另一方面选项1是无服务器。最后,这一切都归结到你已经到位的软件栈和处理流数据所需的软件。

© www.soinside.com 2019 - 2024. All rights reserved.