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

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

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

策略共享:如何降低Amazon EMR使用成本_第1张图片

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

策略共享:如何降低Amazon EMR使用成本_第2张图片

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

策略共享:如何降低Amazon EMR使用成本_第3张图片

很明显,在保持规模发展的同时将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 首席云计算企业顾问张侠博士授课,火热报名中!!

你可能感兴趣的:(策略共享:如何降低Amazon EMR使用成本)