我为我的大数据项目准备了下一个SLA:无论有多少并发的spark任务,最长执行时间都不应超过5分钟。例如:有10个Spark并发任务, 最慢的任务应少于5分钟,随着任务数量的增加,我必须确保该时间不会超过5分钟。这里不适合使用常规的自动缩放功能,因为添加新节点需要花费几分钟的时间,并且无法解决任务呈指数增长的问题(例如从10个并发任务倾斜到30个并发任务)。
我想到了按需启动新集群以符合SLA要求的想法。比方说,我发现并发任务的最大数量(它们几乎相等并且占用相同的资源)可以在5分钟内在我的集群上同时执行,例如-30个任务。当任务数量接近阈值时,将启动新集群。这种模式的想法是在自动缩放过程中克服速度慢并满足SLA。
接下来的问题是:除了在单个集群上自动缩放(由于我的spark提供程序的速度慢,不适合我的用例)之外,我的模式是否还有其他选择?