Amazon EMR(Elastic MapReduce):亚马逊Hadoop托管服务运行架构&Hadoop云服务之战:微软vs.亚马逊
http://s3tools.org/s3cmd
Amazon Elastic MapReduce (Amazon EMR)简介
Amazon Elastic MapReduce (Amazon EMR) 是一种 Web 服务,提升企业、研究人员、数据分析师和开发人员轻松、经济高效掌控海量数据的能力。它基于 Amazon EC2)技术和Amazon S3) 技术的 Web 规模基础设施,是一种 Hadoop 托管服务运行架构。
Amazon Elastic MapReduce自动加快MapReduce框架在Amazon EC2实例上的 Hadoop 部署速度,将任务流程中的数据细分为更小的数据块,以进行并行处理(“分区映射”功能),最终还将经过处理的数据重新组合为最终解决方案(“规约分区”功能)。Amazon S3 可作为数据分析源,以及最终结果的输出目的地。
Amazon Elastic MapReduce能即时灵活配置自身所需容量大小,执行数据密集型应用计算,完成 Web 索引、数据挖掘、日志文件分析、数据仓库、机器学习、财务分析、科学模拟和生物信息研究任务。Amazon Elastic MapReduce技术让您专注于数据分析,无需担心费时的 Hadoop 集群设置、管理或调整,也无需担心所依靠的计算能力。
Amazon Elastic MapReduce特点
访问安全 – Amazon EMR可自动配置 Amazon EC2 防火墙,控制运行任务流程的实例的网络访问安全,并控制实例之间的访问安全。任务流程也可在 Amazon Virtual Private Cloud (Amazon VPC) 中启动,您通过指定希望的 IP 范围来隔离计算实例,并使用行业标准加密 IPsec VPN 策略连接您现有的 IT 基础设施,确保网络安全无忧无虑。
第三方工具 – Amazon Elastic MapReduce完美支持众多第三方工具和解决方案,方便用户开发。例如,Karmasphere Analyst 可视化桌面工作区,可用于分析 Amazon Elastic MapReduce上的数据。它使用图形化工具,可执行基于 SQL 的结构化数据和非结构化数据查询,并呈现可视化结果。Karmasphere Analyst 按小时计费,无前期费用投投入,亦免除签订长期使用合约之劳。
应变灵活–根据需要您能够使用 Amazon Elastic MapReduce 运行任意数量的 Hadoop 计算实例。您可用一个、数百个甚至数千个实例来处理数 GB、数 TB 甚至数 PB 的数据。您不但可在任务流程运行之际实时修改实例数量,而且还可根据需要同时运行任意多的任务流程。您在几分钟内即可立即开始加速处理大型 Hadoop 任务流程,无需等待数小时或数天。任务流程完成后,除非您另行指定,否则服务将自动终止实例,为您免除后顾之忧。
经济实惠 – Amazon Elastic MapReduce 让您尊享 Amazon 规模经济效益。您只需为您实际消耗的计算容量支付极低的费用。Amazon Elastic MapReduce 经过优化,可监控您的任务流程的进度,停用完成流程的资源,尽力为您节省每一笔开支。
使用便捷 – 您尊享便捷服务,Amazon Elastic MapReduce 为您处理 Hadoop 集群设置、运行、和性能优化;您只需专注数据分析,心无旁鹜。在我们提供的工具和示例数据处理应用程序帮助下,您无需编写任何代码,即刻上手。在您启动任务流程之后,Amazon Elastic MapReduce 会处理 Amazon EC2 实例配置、安全设置、Hadoop 配置和设置、日志收集、运行状况监控以及其他硬件相关复杂问题,例如在运行的任务流程中自动删除错误实例。
服务全球 – Amazon Elastic MapReduce 服务使用遍布全球的 EC2 基础设施,现在以下地区可用:美国东部(弗吉尼亚北部)、美国西部(俄勒冈)、美国西部(加利福尼亚北部)、欧洲(爱尔兰)、亚太地区(新加坡)、亚太地区(东京)、亚太地区(悉尼)、南美洲(圣保罗)和 AWS GovCloud(美国)地区。
与其他AWS服务集成天衣无缝 – Amazon Elastic MapReduce 与其他 AWS 服务(例如 Amazon S3、DynamoDB 和 EC2)集成天衣无缝,为数据处理应用程序提供了坚固基础设施。该服务在 Amazon EC2 中运行任务流程,并在 Amazon S3 和/或 Amazon DynamoDB 存储输入和输出数据,让您尊享 Amazon 服务之大成。
服务可靠 – Amazon Elastic MapReduce 基于 Amazon 高度可靠的基础设施构建而成,而且专门针对 Amazon 的基础设施环境优化了 Hadoop 性能。该服务能监控任务流程执行情况 – 重试失败任务、关闭出现问题的实例、配置新节点替换故障节点,确保任务流程执行流畅。
毫无疑问,Apache Hadoop软件库拥有当今最多的大数据分析思想。Gartner在2012年三月的报告中指出Hadoop作为一个流行的搜索词,在网站上的搜索量已经比2011年增加了601.8%。Hadoop逐渐普及的背后主要的驱动力在于大数据和社交计算的炒作,广泛的企业级开源软件应用,拥有Hadoop熟练技能的开发人员资源池以及Hadoop可以用预期达成的性能以低廉的商业服务器集群成本交付高可用性。后面的这个性能让企业能够将Hadoop工作负载部署到IaaS和PaaS提供商的云上,代替数据中心资本投资中的几次付费费用。
Apache软件基金会将Hadoop描述为:
Apache Hadoop项目是用以开发可靠、可扩展且分布式的计算的开源软件。
Apache Hadoop软件库是一种通过使用简单的编程模型,跨计算机集群的大型数据集分布式处理框架。旨在从单一服务器扩展到成千上万的机器,每一个产品本地计算并存储。而不是依赖于硬件来交付高可用性,该软件库本身旨在检测和处理应用层的失败,从而交付计算机集群顶层的高可用性服务,每一个都可能发生故障。
商业开源分布式软件,像红帽Enterprise Linux,属于企业级不可或缺的。Cloudera领先的商业Hadoop分布式用免费增值模式,提供了免费的Cloudera Distribution for Hadoop (CDH),但是需要对支持和Cloudera Manager应用许可证。因为其商业模式和市场支配,Cloudera成为很多“红帽Hadoop”的使用者的考虑对象。Yahoo!经典的Hadoop开发者,已经改变了野蛮,但是Cloudera却在出售其“Hadoop圣经。”因此Yahoo!于2011年六月甩掉了其Hadoop工程师团队,进入Hortonworks,Benchmark资本投资的一个新的实体,来获取Hadoop的收益,从而与Cloudera竞争。Cloudera2012年三月宣布同IBM合作,将其CDH、Cloudera Manager同本地的IBM BigInsights平台整合,并放入IBM的公有SmartCloud服务中。
亚马逊的弹性MapReduce
亚马逊Web服务(AWS)于2009年4月2日引入了弹性MapReduce服务(EMR),让AWS成为基于云的Hadoop服务的祖父。EMR使用按需的EC2实例集群处理存储于S3或者DynamoDB中的数据。专业的按需EMR实例陈本范围从小型的每小时0.105美元到每小时0.864美元的大型Hi-CPU实例,包括EMR额外的费用。S3和Dynamo DB存储为标准的按月付费,每GB数据传输到亚马逊数据中或者从亚马逊数据中心输出都适用。你可以按每小时付费或者你实际运行的实例付费。
AWS在EMR开始手册中提供了代码示例和教程,介绍在Linux、UNIX以及Windows语法中,通过EMR Command Line Interface (CLI)创建Streaming Job Flow。或者你可以适用Hive和亚马逊EMR工作流创建和执行一个简单的Contextual Advertising,如图一所示,EMR Management Console,链接中的博客描述了细节。
图一图解自动化弹性MapReduce和Hive工作流。你可以从CLI或者AWS管理控制台运行交互的Hive会话。
这篇文章对比了用AWS Management Console(图二)创建Hive工作流,而不是CLI,因为微软的Apache Hadoop on Windows Azure (AHoWA)服务包括了交互式Hive控制台,性能类似。Apache基金会将Hive描述为:
Hive是一个Hadoop的数据仓库系统,促进简化数据摘要、临时查询和存储在Hadoop兼容文件系统中的大型数据集的分析。Hive提供了数据之上项目结构以及使用类SQL语言HiveQL查询数据的一种机制。同时,HiveQL中不方便或者表达不清这个逻辑时,该语言可以让传统的map/reduce程序员插入其自定义的mappers和reducers。
图二,AWS Management Console下Elastic MapReduce选项创建Job Flow页面。点击Create New Job Flow按钮,可以选择Contextual Advertising示例HiveQL声明,转换ad-server impression数据到Hive表中。此外,MapReduce操作生成汇总广告效率的顺序文件。
2012年5月31日,AWS升级EMR到最新的Hive版本(0.8.1)中。Hive能够翻译HiveQL声明到MapReduce操作中并在执行这个操作,相反本地文件中湖综合公有云数据存储(比如亚马逊 S3或者Windows Azure blobs)的Hive表中的数据也是。例如,下面示例的HiveQL声明创建了一个名为impressions的Hive表,在SerializeDeserialize (serde)格式中有七个字段,从S3中JavaScript Object Notation (JSON)格式存储的ad-server impression日志文件……/表/ impressions folder:
CREATE EXTERNAL TABLE impressions (
requestBeginTime string
adId string,
impressionId string,
referrer string,
userAgent string,
userCookie string,
ip string )
PARTITIONED BY (dt string)
ROW FORMAT
serde 'com.amazon.elasticmapreduce.JsonSerde'
with serdeproperties ( 'paths'='requestBeginTime, adId,
impressionId, referrer,
userAgent, userCookie, ip' )
LOCATION '${SAMPLE}/tables/impressions' ;
Contextual Advertising工作流运行之前的声明,存储在S3脚本文件中,从而为后来的分析创建Hive表。第二个CREATE EXTERNAL TABLE声明生成一个点击表,从ad click日志数据和另一个impressions和clicks联合的表。如果你使用推荐的大型实例,每个实例每小时0.42美元,需要一个关键或者两个核心实例,成本是1.26美元。使用默认的小型实例,成本降到0.315美元。小型实例整个执行时间大约是20分钟。整个执行完成后,管理控制台停止运行所有实例。
进一步的操作会生成一个功能主页表,可以用于计算一个广告的点击估价。以S3脚本的形式存储这些估价HiveQL声明,选择一个而你不是第二步中的工作流处理示例脚本,在管理控制台的S3选择项中查看作为结果生成的S3文件。
微软的Apache Hadoop on Windows Azure服务预览
2011年12月14日SQL Server大数据团队发布了Apache Hadoop on Windows Azure服务商业技术预览(CTP)版本的邀请码,该团队期望在2012年初公诸于众。微软同Hortonworks合作,创建服务,提供核心的Hadoop/MapReduce功能、JavaScript库,可以用JavaScript编写MapReduce程序,用标准的Web浏览器运行工作,以及一个交互的JavaScript/Hive 控制台来编写和执行HiveQL声明。分析师使用Excel和其他的微软商业智能(BI)工具可以下载一个Hive ODBC驱动和Excel插件,允许他们用BI工具,比如PowerPivot和PowerView,发布HiveQL查询到分析结构或者非结构的Hadoop数据。预期AHoWA 用户必须通过邀请码邮件填写一个简要的调查。通过邀请码登录到AHoWA 网站,打开Request a New Cluster 页面(图三所示)。在预览期间没有AHoWA 资源消耗费用。然而,集群48小时候回收;你可以在24小时内重新创建一个,其生命周期持续6小时。
图三,AhoWA网站的Metro-ized Create a New Cluster页面。制定一个唯一的DNS命名,选择一个集群大小并提供管理认证,启用Request Cluster按钮。分配一个大型集群的一个集群头和四个工作结点只需要几分钟。
创建了集群后你可以运行九个示例Apache MapReduce中的一个,Pig、Sqoop和Mahout项目。或者你可以设置Windows Azure Marketplace Datamarket产品,Windows Azure对象容器或者亚马逊S3文件所谓数据源,放入Hive表中,具体的介绍详见链接的博客(图四)。
图四,从亚马逊S3表格上传。Manage Cluster页面的启动S3按钮打开这个表格,需要你的AWS Access Key和Secret Key进行验证。你为S3数据源文件选定具体的URL进入到HiveQL声明中。
下面的HiveQL声明键入在文本框中的数据显示区域,创建了一个本地功能主页Hive表,以Hadoop SEQUENCEFILE的格式有四列,用于后来的查询:
CREATE EXTERNAL TABLE feature_index (
feature STRING,
ad_id STRING,
clicked_percent DOUBLE )
COMMENT 'Amazon EMR Hive Output'
STORED AS SEQUENCEFILE
LOCATION 's3n://oakleaf-emr/hive-ads/output/2012-05-29/feature_index';
点击Evaluate按钮执行这个声明,大约四秒的时间内清空文本框并创建一个链接到数据源(见图五)。从S3数据源中选择查询下载数据。
图五,去人HiveQL查询的执行。查看工作日志需要一个远程桌面协议(RDP)连接到Azure High Performance Cluster中。
创建一个Hive表,增加其名称到表格列表中,命名列到列列表中,执行SELECT * FROM feature_index LIMIT ,20个查询结果显示出来,这是最先的20个结果(见图六)。
图六,第一个20行。花了7.265秒来执行一个简单的HiveQL SELECT查询,由于互联网延迟和相对较低的DSL连接。
AWS的Contextual Advertisin中的“Applying the Heuristic”部分建议执行下面的示例HiveQL查询对抗功能主页表“功能'us:safari' and 'ua:chrome'如何执行”:
SELECT ad_id, -sum(log(if(0.0001 > clicked_percent, 0.0001, clicked_percent))) AS value
FROM feature_index
WHERE feature = 'ua:safari' OR feature = 'ua:chrome'
GROUP BY ad_id
ORDER BY value DESC
LIMIT 100;
根据文章:
结果就是通过试探性的偶然点击排序广告。在这一点上,我们查阅广告,假设苹果产品的优势。
图七展示了执行之前查询的结果,展示了最高点击率的广告:
图七,返回的100个最高点击率的第一个15行。Hive History数据并没有显示出来,期间两个MapReduce工作已经执行。
如果你对于集成PowerPivot和Excel,通过交互Hive控制台生产数据感兴趣,看看我的《Using Excel 2010 and the Hive ODBC Driver to Visualize Hive Data Sources in Apache Hadoop on Windows Azure》一文。为了给控制台进行Windows Azure对象测试作为数据源,看《Using Data from Windows Azure Blobs with Apache Hadoop on Windows Azure CTP》一文。
总结
与微软的AhoWA相比,亚马逊的EMR是一个经验丰富的Hadoop/MapReduce老手,AhoWA让是预览阶段。二者都提供了Apache Hadoop完全详细的核心功能,但是AhoWA用其交互式Hive和JavaScript控制台赢得了可用性。如果你的分析团队使用Excel或者其他的微软BI工具,Hive ODBC驱动和Excel Hive Ad-In在增加性能方面就是赢家。
【编辑推荐】:
Amazon EMR(Elastic MapReduce):亚马逊Hadoop托管服务运行架构&Hadoop云服务之战:微软vs.亚马逊的更多相关文章
- MapReduce扩展:应用程序如何运行于Hadoop Yarn之上
1. 背景 “应用程序运行于Hadoop Yarn之上”的需求来源于微博运维数据平台中的调度系统,即调度系统中的任务需要运行于Hadoop Yarn之上.这里的应用程序可以简单理解为一个普通的进程 ...
- [转帖]微软击败亚马逊 赢得五角大楼的100亿美元JEDI云合同
微软击败亚马逊 赢得五角大楼的100亿美元JEDI云合同 https://www.cnbeta.com/articles/tech/903507.htm 微软Azure的胜利 国防部证实,美国政府已向 ...
- Hadoop学习总结之五:Hadoop的运行痕迹
Hadoop学习总结之五:Hadoop的运行痕迹 Hadoop 学习总结之一:HDFS简介 Hadoop学习总结之二:HDFS读写过程解析 Hadoop学习总结之三:Map-Reduce入门 Ha ...
- [转]Amazon AWS亚马逊云服务免费一年VPS主机成功申请和使用方法
今天部落将再次为大家介绍如何成功申请到来自亚马逊的Amazon AWS免费一年的VPS主机服务.亚马逊公司这个就不用介绍了,是美国最大的一家网络电子商务公司,亚马逊弹性计算云Amazon EC2更是鼎 ...
- AWS系列之一 亚马逊云服务概述
云计算经过这几年的发展,已经不再是是一个高大上的名词,而是已经应用到寻常百姓家的技术.每天如果你和互联网打交道,那么或多或少都会和云扯上关系.gmail.github.各种网盘.GAE.heroku等 ...
- 大数据分析:结合 Hadoop或 Elastic MapReduce使用 Hunk
作者 Jonathan Allen ,译者 张晓鹏 Hunk是Splunk公司一款比較新的产品,用来对Hadoop和其他NoSQL数据存储进行探測和可视化,它的新版本号将会支持亚马逊的Elastic ...
- 亚马逊云服务之CloudFormation
亚马逊的Web Service其实包含了一套云服务.云服务主要分为三种: IaaS: Infrastructure as a service,基础设施即服务. PaaS: Platform as a ...
- 程序员面试大揭秘——应聘微软、亚马逊、谷歌、苹果等IT公司你都要做什么准备?
对于多数求职者而言,面试好似一个迷局.你去了,见了几个面试官,答了一堆问题,然后,或两手空空离开,或幸运地拿到录用通知. 你有没有想过: 面试结果是怎么得出的? 面试官会不会互相交流? 公司最看重哪些 ...
- [AWS] 01 - What is Amazon EMR
[DE] ML on Big data: MLlib 关于 Amazon EMR 发布版本 利用 Amazon EMR 分析大数据 Amazon Athena 是一种交互式查询服务,让您能够轻松使用标 ...
随机推荐
- hadoop学习第七天-HBase的原理、安装、shell命令
一. hbase的原理知识 1. hbase介绍 hbase是hadoop的一个重要成员,主要用于存储结构化数据,构建在hdfs之上的分布式存储系统,它主要通过横向扩展,通用不断增加廉价服务器增加计算 ...
- range基础
collapse这个方法是把结束位置抛弃掉,并不是简单的设置到开始位置. 结束位置被抛弃掉以后,只要没有给它重新设置位置,它就一直都会等 于开始位置.即使你修改了开始位置,结束位置还是会在修改后的开始 ...
- FarBox的使用经历
新年伊始,一个崭新的开始,我的博客也有个新的起点.怎么会有这个想法呢?个人觉得这是程序员那颗不安分的心开始躁动了(其实就是开始作了~~哈哈,开个玩笑). 更佳界面.更流畅的操作.更方便的查看.更炫酷动 ...
- css小知识---input输入块
对于如下的界面,介绍一种实现方式. 可以将整个界面分为三块,左中右.通过display: inline-block;和float: right;左右浮动效果实现. 代码如下: <!DOCTYPE ...
- win10系统修改Intel VT-x时进入不了BIOS问题
一般电脑进入BIOS的方式都是在开机的时候不停的按F2或者F12,但是Win10系统由于支持快速启动,当win10系统快速启动的时候,按F12或者F2是没反应的,解决方式: 第一步:修改win10的启 ...
- mongodb简介和特性
1.mongodb是基于文档的(BSON,类似json的键值对来存储),不是基于表格,易于水平扩展,将内部相关的数据放在一起能提高数据库的操作性能.如果你想新建一个新的文档类型,不用事先告诉数据库关于 ...
- 试坑不完美的 clip-path (我说的 CSS 的那个)
需求跟我说,咱们要创新,想做一个蜂巢状的列表,年少无知的我竟然一口答应了,全然因为刚接触了 clip-path: But,然而,不幸的是,这只是坎坷路途的开始.... clip-path 的教程很多了 ...
- Centos系统 上下文切换的检查思路
1.什么是上下文切换(Context Switch)? 上下文切换,有时也称做进程切换或任务切换,是指CPU从一个进程或线程切换到另一个进程或线程. 操作系统可以同时运行多个进程, 然而一颗CPU同时 ...
- 20145240 《Java程序设计》第一次实验报告
20145240 <Java程序设计>第一次实验报告 实验内容 一.命令行下java程序开发 1.建立Code目录,输入mkdir 20145240命令建立实验目录,并使用dir命令查看目 ...
- 5.4WEB服务器、应用程序服务器、HTTP服务器区别
WEB服务器.应用程序服务器.HTTP服务器有何区别?IIS.Apache.Tomcat.Weblogic.WebSphere都各属于哪种服务器,这些问题困惑了很久,今天终于梳理清楚了: Web服 ...