Hadoop云服务之战:微软vs.亚马逊

2019-03-28 13:19|来源: 网络

毫无疑问,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,链接中的博客描述了细节。

Hadoop云服务之战:微软vs.亚马逊 

图一图解自动化弹性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。

 

Hadoop云服务之战:微软vs.亚马逊 

图二,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文件。

相关问答

更多

微软的云计算服务 Azure 与亚马逊的 AWS 有什么区别

WindowsAzure是微软基于云计算的操作系统。WindowsAzure的主要目标是为开发者提供一个平台,帮助开发可运行在云服务器、数据中心、Web和PC上的应用程序。云计算的开发者能使用微软全球数据中心的储存、计算能力和网络基础服务。Azure服务平台包括了以下主要组件:WindowsAzure;MicrosoftSQL数据库服务,Microsoft.Net服务;用于分享、储存和同步文件的Live服务;针对商业的MicrosoftSharePoint和MicrosoftDynamicsCRM ...

hadoop云计算

Hadoop是由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSI ...

你的公司使用亚马逊云服务吗?(Do you use Amazons Cloud services for your company? [closed])

我在EC2上安装了两个应用程序实例,并且一直使用S3作为本地到AWS备份和媒体资产传送。 我们在6月中旬将约15%的应用程序内容/流量转移到了EC2。 结果是混合的,我们正在将内容繁重的使用实例移回我们的托管数据中心,现在正在研究其他内容交付选项。 请注意: 我的应用程序需要带宽(从每个实例100mbps开始) 我和我的公司都在瑞士,这肯定对我们的评估产生了影响。 我将带宽定义为流量(mbps等)和流量(volume,mb,gb等) 优点: 低到中等流量的交通成本,假设每月不到1 TB。 超过这个 ...

CFUUID VS.(CFUUID Vs. advertisingIdentifier Vs. identifierForVendor)

identifierForVendor是用户设备上的所有应用程序共享的唯一标识符。 如果用户有多个由您制作的应用程序,他们都将共享此标识符。 如果用户删除同一供应商的所有应用程序,则该标识符将被重置。 advertisingIdentifier唯一标识符,可用于跟踪用于广告目的的用途。 可以由用户重置。 CFUUID只是每次调用它时创建一个UUID的类。 您发布的代码将在每次调用时创建一个新的唯一标识符。 您应该将此标识符存储在NSUSerDefaults或Keychain中,并从中读取它以构建某 ...

亚马逊云服务器linux怎么设置vpn服务器

可以用微风vpn,直接联系他们客服就能获取帐号密码和服务器地址,手机和电脑的可以通用的,搜索有很多教程的!