11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

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

  • 2015-05-11
  • 本文字数:1777 字

    阅读完需:约 6 分钟

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](http://www.bloomreach.com/careers/) 与我们联系。如果您有任何问题或者建议,也请在评论栏中与我们沟通。
** 查看原文链接:**[Strategies for Reducing Your Amazon EMR Costs](http://blogs.aws.amazon.com/bigdata/post/Tx3L1N4PH3MPPIF/Strategies-for-Reducing-Your-Amazon-EMR-Costs)
[点击](http://www.infoq.com/cn/vendorcontent/show.action?vcr=3241) 了解 AWS 云技术相关的最新活动:
[《5 月 19 日 InfoQ 在线课堂:1 小时学会在 AWS 云上部署 SAP 企业应用》](http://www.infoq.com/cn/vendorcontent/show.action?vcr=3241) 由 AWS 首席云计算企业顾问张侠博士授课,火热报名中!!
2015-05-11 00:081563

评论

发布
暂无评论
发现更多内容

《SQL必知必会》读书笔记

懒时小窝

数据库 sql

OpenHarmony技术日探讨教育发展,聚焦开源人才培养

OpenHarmony开发者社区

OpenHarmony

深度剖析OpenHarmony应用/服务的逻辑结构

Anna

OpenHarmony

怎么写帮助文档?产品人看过来

小炮

帮助中心

赛事解析|乒乓球时序动作定位大赛亚军方案分享

百度大脑

百度天工AIoT打造农业种植方案,用数字经济助力建设农业新模式

百度大脑

pinpoint插件开发之一:牛刀小试,调整gson插件

程序员欣宸

Java web 4月月更 Pinpoint

某意大利小哥,竟靠一个缓存中间件直接封神?

沉默王二

redis

浅谈C#可变参数params

yi念之间

C# params

OpenHarmony应用开发之全局配置参数解析

Anna

OpenHarmony

web前端培训懒加载对 Web 性能的影响

@零度

前端开发 懒加载

Java 邮件发送

Java 邮件 4月月更

浅谈C#字符串构建利器StringBuilder

yi念之间

C# StringBuilder

【直播回顾】OpenHarmony知识赋能第五期第二课——成为社区达人

OpenHarmony开发者社区

OpenHarmony 社区贡献

Android C++系列:函数知识知多少

轻口味

c++ android 4月月更

密码基础设施提供商三未信安加入龙蜥社区

OpenAnolis小助手

合作伙伴 龙蜥社区 CLA 三未信安 密码基础设施

浅谈云上攻防——Etcd风险剖析

腾讯安全云鼎实验室

安全攻防 网络安全

OpenHarmony 设备开发环境搭建 / 源码获取 / 编译 / 烧录

Anna

OpenHarmony

清华校友走进百度 用科技赋能产业智能化转型

百度大脑

一文搞明白Redis中两种持久化机制RDB和AOF

jiangxl

redis'

Redis主从复制集群及数据异常丢失恢复思路

jiangxl

redis'

「质量三人行之不止测试」直播问题解答

BY林子

软件测试 职业发展 质量赋能 测试转型 质量内建

Java 如何从一个 List 中随机获得元素

HoneyMoose

美好教育,无处不在 | 拓维信息携手开鸿智谷重磅发布教育在鸿OS发行版

拓维信息

操作系统 OpenHarmony OpenHarmony 3.1 Release

了解HTTP的基本历史及知识

CRMEB

参赛必看,2022语言与智能技术竞赛赛题任务解读直播!

百度大脑

高精度轻量级图像分割SOTA模型PP-LiteSeg重磅开源!

百度大脑

一站式内容创作助手 智能创作平台生成正式商用

百度大脑

新冠疫情防控背后有哪些鲜为人知的技术?

DS小龙哥

4月月更

金蝶云·苍穹峰会震撼来袭

金蝶云·苍穹

OpenHarmony啃论文计划-elf文件格式介绍

Anna

OpenHarmony

策略共享:如何降低Amazon EMR使用成本_语言 & 开发_Prateek Gupta_InfoQ精选文章