策略共享:如何降低 Amazon EMR 使用成本

阅读数:899 2015 年 5 月 11 日

话题:语言 & 开发架构

BloomReach 公司已经建立起一套个性化搜索平台,其中各应用程序能够实现有机搜索、站点搜索、内容推广以及营销等功能。BloomReach 方面收集来自各种来源的数据,包括营销库存资料、来自商家官网的站点访问数据以及像素数据。这些数据经过收集、解析、存储等处理并最终被用于将用户意愿与商家网站内容相匹配,从而根据消费者行为习惯以及站点内产品的实际品质实现针对性营销。

大家可以通过以下示意图了解该方案的商家数据获取途径。BloomReach 获取商家数据的主要来源包括商家页面、商家提要以及像素数据。BloomReach 利用 ETL(即提取 - 转换 - 加载)流程对数据进行清理、筛选与标准化整理,而后将其导入产品数据库。各独立应用程序随后将能够利用这些数据构建起产品交付关系。该产品数据库同时支持多种应用程序类型,包括能够在商家网站上向用户展示相关趋势产品的“热门推荐”应用。

下图所示为一套个性化示例任务流程:

在 BloomReach 公司,我们启用了 1500 套到 2000 套 Amazon EMR 集群,且每天运行 Hadoop 任务数达 6000 个。作为一家发展中企业,我们发现 Amazon EMR 的使用成本在短时间内出现了急剧提升:

很明显,在保持规模发展的同时将 Amazon EMR 使用成本控制在较低水平已经成为我们的当务之急。为了实现这一目标,我们采取了以下各项策略:

  1. 尽可能使用 AWS Spot 实例而非 On-Demand 实例。Amazon Elastic Cloud Compute(简称 Amazon EC2)的 Spot 实例属于我们需要竞价价购买的、未被实际使用的 Amazon EC2 容量。大家所需支付的实际价格取决于 Spot 实例的总体供求状态。使用 Spot 实例在成本方面能够较使用 On-Demand 实例低出 80%。对 Spot 实例的妥善管理非常重要,因为此类实例可能会在 Spot 市场价格高于我们的竞价后中断。在 BloomReach 公司,我们编写出一整套编排系统,用于规划任务在 Amazon EMR 上的运作。该系统实现了一套 Hartmann 流程,能够同时以本地及 Amazon EMR 方式运行一系列处理任务。它还能检测到各类故障状况的出现,例如 Spot 实例中止以及根据需要将任务调度至其它集群之上。
  2. 在创建系统时尽可能让几个小型任务共享现有集群,而非启动一套集群承载全部任务。请记住,无论大家的任务处理周期是 10 分钟还是 60 分钟,大家都需要付出一个小时的服务使用成本。如果大家拥有四个处理时长为 10 分钟的什么牌子,请记得将它们共享在同一套集群中,这样其使用成本仍然按一个小时计算。除此之外,让多个任务共享同一套集群还能帮助我们节省下启动新集群所带来的时间与成本消耗。而节省时间正是实现实时任务处理中的一大重要因素。
  3. 利用 Amazon EMR 标签进行成本追踪。合理利用 EMR 标签能帮助大家以项目或者部门为单位追踪云使用量所带来的具体成本,同时深入了解投资回报水平并提供理想的预算编制透明度。
  4. 创建一套生命周期管理系统,我们可以借此追踪集群运行状态并及时清除闲置集群。
  5. 为自己的任务选择合适的实例类型。举例来说,使用 c3 实例类型处理高计算强度类任务。根据任务实际规模的不同,这种方式能够显著降低资源浪费与使用成本。下面这套算法源自我们的切身实践,它能根据 Spot 价格及计算容量有效选定最具性价比的实例类型:
    maxCpuPerUnitPrice = 0
    optimalInstanceType = null
    For each instance_type in (Availability Zone, Region) {
      cpuPerUnitPrice = instance.cpuCores/instance.spotPrice
      if (maxCpuPerUnitPrice < cpuPerUnitPrice) {
         optimalInstanceType = instance_type;
      }
    }
    

在以上手段的辅助下,Amazon EMR 能够切实帮助大家提高工作效率、控制成本并推动原本优秀的方案更上一层楼。

如果大家希望了解 BloomReach 在实际工作中如何解决更多挑战,请通过www. bloomreach.com/careers与我们联系。如果您有任何问题或者建议,也请在评论栏中与我们沟通。

查看原文链接:Strategies for Reducing Your Amazon EMR Costs

点击了解 AWS 云技术相关的最新活动:

《5 月 19 日 InfoQ 在线课堂:1 小时学会在 AWS 云上部署 SAP 企业应用》 由 AWS 首席云计算企业顾问张侠博士授课,火热报名中!!