如何用亚马逊弹性MapReduce分析大数据?

Amazon Elastic MapReduce (EMR)是一个用于较强专业性应用程序开发的工具,其中包括日志分析、财务分析、营销分析以及生物信息学等应用。它使用了开源框架Hadoop,以便于在一个亚马逊EC2实例集群中分配你的数据。

而分析大数据的最佳方法就是使用一个运行在Hadoop上的开源数据仓库和分析包——Hive。Hive的脚本程序使用的是一种类似于SQL的语言,他被称为Hive QL。通过使用这种脚本程序,你就能够避免用Java编写MapReduce程序所带来的复杂性。

以下的示例是基于一个亚马逊EMR例子创建HIVE集群,它使用Apache Hive进行广告相关性关联。这个例子向你展示了用户可以如何把客户的点击数据与特定广告相关联。

首先,打开Amazon Elastic MapReduce控制台。然后点击 Create Cluster ,在五个步骤中完成配置设置。

第一步,配置一个集群

在 Cluster name 字段中,输入一个描述性的名称。它可以是非唯一的。

在Termination protection 字段中,其默认值为Yes。这一设置可确保集群不会因为意外或错误而关闭。

在Logging 字段中,其默认值为Enabled。日志数据将被发送至亚马逊S3。

在Log folder S3 location 字段中,请以如下格式输入存储桶名称和文件夹信息:s3://<bucket name>/<folder>/。

在Debugging 字段中,其默认值为Enabled。

Tag 部分是可选的。你可以为你的EMR集群添加最多10个标签。在一个标签中,包括了一个区分大小写的键值对。

第二步,设置软件配置

在Hadoop distribution 多选框中,选择Amazon 为默认值。

在 AMI version 多选框中,选择 2.4.2 (Hadoop 1.0.3)

在Application to be installed 多选框中,保留选中Hive 和 deletePig。

第三步,设置硬件配置

在 Network 字段中,选择Launch into EC-2 Classic。

在EC2 Subnet 字段中,选择 No preference。

在Master、Core 以及 Task 字段中,默认EC2实例类型为m1.small。对于低工作负载的应用,你可以为所有节点选择使用小实例(可确保降低你的使用成本)。相应地,Count 的默认值分别为1、 2、 0。同时,对于所有三个字段,确保不选中 Request Spot Instances 。

注意:20是每个AWS帐户的最大节点数。如果你运行了2个集群,那么2个集群运行的节点总数必须为20或以下。如果你确实需要节点数超过20,那么你必须提交一个请求以便于提高你的亚马逊EC2实例上限。

第四步,设置安全和访问配置

在EC2 key pair 字段中,从列表中选择一个亚马逊EC2密钥对。这一设置可以让你使用Secure Shell(SSH)来连接主节点。

在IAM user access 字段中,其默认值为 No other IAM users。

在EC2 role 多选框中,其默认值为 no roles found。

在Bootstrap Actions 部分,你可以不做任何操作。

第五步,指定集群参数

在Steps 部分,从列表中选择Hive Program,并点击 Configure and add。

在Name 字段中,其默认值为Hive Program。

在 Script s3 Location 字段中(必选项),以BucketName/path/ScriptName的格式输入相关信息,例如 s3n://elasticmapreduce/samples/hive-ads/libs/model-build。

在 Input s3 Location 字段中(可选项),以BucketName/path的格式输入相关信息,例如 s3n://elasticmapreduce/samples/hive-ads/tables。该输入值会作为名为INPUT的参数发送给Hive脚本程序。

Output S3 Location 字段(可选项),以BucketName/path的格式输入相关信息,例如 s3n://myawsbucket/hive-ads/output/2014-4-14。该输入值会作为名为OUTPUT的参数发送给Hive脚本程序。

在 Arguments 字段,输入相关信息,如 - d LIBS=s3n://elasticreducemap/samples/hive-ads/libs。HIVE脚本程序需要额外的库。

在 Action on Failure 字段中,选择 Continue。如果当前步骤失败,它将继续至下一个步骤。

当你完成后,点击Add,然后点击Create Cluster。你将会看到Summary 信息。

如上例,在你继续查询操作和分析大数据前,你需要在主节点上准备一个HIVE会话。

你将需要每隔五分钟向亚马逊S3推送 Impression 和 Click Log Files。每次添加一个条目,就会向客户显示一条广告。每次添加一个Click Log Files的条目,客户一条广告。类似于SQL的查询操作简化了关联客户点击数据和特定广告的过程。

总之,分析大数据的最佳方法就是在Hadoop上运行Hive,并使用SQL查询以简化日志数据分析。

来源:TechTarget中国  作者:Judy Myerson     翻译:滕晓龙