繁体   English   中英

如何自动缩放EMR任务实例

[英]How to autoscale EMR task instances

我将EMR与任务实例组一起用作竞价型实例。 我想始终保持最小数量的任务实例。 就是说,每当EMR由于出价高于我们设置的价格而终止任务实例时,我的应用程序都应以较低的出价启动另一个任务实例。

我的研究

  1. 使用Cloudwatch通知何时违反阈值,并自动缩放任务实例。 但是根据研究,EMR中没有自动缩放的概念。
  2. 使用Cloudwatch,并在阈值中断时通知SQS,并且只有一项服务始终在使用和扩展任务实例。

问题

  1. EMR中是否存在任何自动缩放功能? 如果可以的话,那么我的工作将减少为仅设置阈值,并执行相应的扩展任务实例操作。
  2. 如果您有其他方法可以解决此问题,请提出建议。

现货价格如何运作

当以现货价格启动Amazon EC2实例时(包括从Amazon EMR启动时),如果当前现货价格低于提供的买入价 ,则实例将启动。 如果现货价格上涨到高于买入价,则实例终止。 实例仅按当前现货价收费

因此,不需要以“稍高的出价”启动新的现货实例的逻辑。 该实例将始终按照当前的现货价格收费 ,因此只需出价与您愿意为该现货实例支付的价格一样高即可。 您将支付的价格低于现货价格(最高!),或者您的实例将被终止,因为价格已经超出了您愿意支付的价格(在这种情况下,您不想为该实例支付“稍高的价格”) )。

如果您希望一直“保持最少的任务实例数量”,则要么支付正常的EMR费用(这意味着实例不会被终止),要么为现货实例出价特别高的价格,例如2正常价格 是的,您有时可能会为实例支付更高的价格,但是平均而言,您的价格会很低。

如果您想偷偷摸摸,可以出价EC2实例的正常价格,然后,如果实例终止,则启动更多任务节点而不使用现货定价。 这样,您的实例将不会被终止,您所支付的费用也不会超过正常的EC2价格。 但是, 当现货价格下降时您将不得不终止并替换这些实例 ,否则您将付出太多。 这就是为什么最好在您的现货实例上提供高出价的原因。

底线:使用现货定价,但要价高。 大多数时候您会得到一个不错的价格。

AWS EMR没有可用的自动缩放选项。 但是您可以使用AWS SQS进行变通并集成Autoscaling。 这是您可以集成的粗略图片。

  1. 使用竞价型实例启动EMR集群。
  2. 设置一个SQS队列并创建3个触发器,一个用于CPU阈值,第二个用于EC2竞价型实例终止通知,第三个用于更改竞价型实例报价。
  3. 因此,如果CPU使用率增加,SQS将触发一个事件以启动新实例到集群,如果有现货实例终止通知,则SQS将触发以启动另一个实例以平衡负载并发送事件以更改出价以启动另一个现货。实例。 (这只是一个粗略的草图,但我想您会理解逻辑的。

这是AWS SQS自动缩放的指南。

https://docs.aws.amazon.com/autoscaling/latest/userguide/as-using-sqs-queue.html

正如已经正确指出的那样,EMR API提供了所有必要的要素,以1)收集监视数据,以及2)以编程方式向上和向下扩展群集。

基本上,有两个主要选项可为EMR群集实现自动扩展:

  1. Autoscaling Loop(自动缩放循环):在服务器上运行并持续监视群集当前负载的进程。 可以定期收集性能指标(内存,CPU,I / O等)并将其存储在数据库中。 将根据性能指标评估自动扩展规则,并根据需要扩展或缩减集群的任务节点。
  2. 基于事件的自动缩放:使用CloudWatch指标(例如EMREC2的指标),您可以以编程方式定义在某些条件下触发的触发器(例如,如果所有节点的平均CPU利用率超过80%,则添加节点)。

两种选择都有其优点和缺点。 选项2的主要优点是它是一种无需服务器的方法(不需要运行您自己的服务器)。 另一方面,选项1确实需要服务器,但因此具有更多的控件来自定义扩展规则的逻辑。 而且,它允许保留可伸缩决策历史记录的可搜索记录。

您可以看一下Atmissian开发的EMR自动缩放框架Themis Themis实现了上面的选项1中讨论的自动缩放循环。 当前的功能包括主动和被动自动缩放,对点/按需任务节点的支持,它带有Web UI,并且该工具易于配置。

我有一个类似的问题,我想分享一个可能的选择。 我编写了一个Java工具来在处理过程中动态调整EMR集群的大小。 它可能会帮助您。 在以下位置查看:

http://www.lopakalogic.com/articles/hadoop-articles/dynamically-resize-emr/

源代码在Github上可用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM