使用Amazon Elastic MapReduce进行大数据分析

日期: 2014-06-11 作者:Judy Myerson翻译:曾少宁 来源:TechTarget中国 英文

Amazon Elastic MapReduce(EMR)是一个实用的应用程序开发工具,它包含日志分析、财务分析、市场分析和其他复杂分析功能。它使用开源框架Hadoop,并将数据分散到一组Amazon EC2实例上。

对Hadoop来说,大数据分析的最佳方法是使用Hive,它是一个运行在Hadoop上的开源数据仓库和分析包。Hive脚本使用一种叫做Hive SQL的类SQL语言。它比使用Java编写MapReduce程序简单得多。

下面将举例说明如何基于Amazon EMR,比如“使用Apache Hive实现精准的广告投放”,创建一个HIVE集群。这个例子演示了如何将客户点击数据与特定的广告投放相关联。

首先,打开Amazon Elastic MapReduce控制台。然后单击,Create Cluster(创建集群),按照下面五个步骤完成配置。

第1步:配置一个集群

  1. Cluster name(集群名称)域中,输入描述名称。名称不要求唯一。
  2. Termination protection(中止保护)域保持默认值Yes(是)不变。这个值可以保证集群不会因为意外事件或错误而关闭。
  3. Logging(日志记录)域保留默认值Enabled(启用)。日志数据将发送到Amazon S3。
  4. Log folder S3 location(日志文件夹在S3的位置)域中,输入以下格式的库名称与文件夹:s3://<bucket name>/<folder>/
  5. Debugging(调试)域保留默认值Enabled(启用)

Tag(标签)部分是可选的。EMR集群最多可以添加10个标签。每一个标签都包含一对区分大小写的键和值。

第2步:创建软件配置

  1. Hadoop distribution(Hadoop发行版)下拉框保留Amazon默认值。
  2. AMI version(AMI版本)下拉框中,选择2.4.2(Hadoop 1.0.3)
  3. 在Application to be installed(安装的应用程序)中,保留Hive,删除Pig。

步骤3:创建硬件配置

  1. Network(网络)域中,选择Launch into EC-2 Classic(在EC-2 Classis中启动)
  2. EC2 Subnet(EC2子网)域中,选择No preference(无首选)
  3. Master(主)Core(核心)Task(任务)域中,将EC2实例类型设置为m1.small。所有节点都使用小型实例来处理轻量负载(降低费用)。它们的默认Count(数量)分别为1、2和0。所有三个域都取消选定Request Spot Instances(请求竞价实例)

注:每个AWS帐号可支持的最大节点数量为20个。如果运行两个集群,那么两个集群上运行的总节点数不能超过20个。如果需要使用多于20个节点,则必须向亚马逊提交请求增加亚马逊EC2实例的上限。

第4步:创建安全性和访问控制

  1. EC2 key pair(EC2密钥对)域中,在列表上选择一个Amazon EC2密钥对。这样就可以使用Secure Shell (SSH)连接主节点。
  2. IAM user access(IAM用户访问)域中,保留默认值No other IAM users(不允许其他IAM用户)
  3. EC2 role(EC2角色)框中,保留默认值no roles found(找不到角色)

Bootstrap Actions(启动操作)区域不需要修改。

第5步:指定集群参数

  1. Steps(步骤)区域中,选择列表的Hive Program(Hive程序),然后单击Configure and add(配置与添加)
  2. Name(名称)域中,默认值为Hive Program(Hive 程序)
  3. Script s3 Location(S3脚本位置)域(必填)中,输入BucketName/path/ScriptName格式的值,例如:s3n://elasticmapreduce/samples/hive-ads/libs/model-build
  4. 在Input S3 Location(S3输入位置)域(可选)中,输入BucketName/path格式的值,例如:s3n://elasticmapreduce/samples/hive-ads/tables。这个值会通过参数INPUT传递到Hive脚本中。
  5. Output S3 Location(S3输出位置)域(可选)中,输入BucketName/path格式的值,例如:s3n://myawsbucket/hive-ads/output/2014-4-14。这个值会通过参数OUTPUT传递给Hive脚本。
  6. Arguments(参数)域中,输入像这样的内容:– d LIBS=s3n://elasticreducemap/samples/hive-ads/libs。Hive脚本需要额外的程序库。
  7. Action on Failure(出错处理)域中,选择Continue(继续下一步)。如果当前步骤出错,那么它会继续执行下一步骤。

完成之后,单击Add(添加),然后单击Create Cluster(创建集群)。这时会出现Summary(小结)窗口。

和例子“使用Apache Hive实现基于情景的广告投放”一样,我们必须在一个主节点上准备一个Hive会话,然后才能执行查询和分析大数据。

我们要每隔5分钟将Impression(广告展现)Click Log Files(点击日志文件)推送到Amazon S3。每当有一条广告显示给客户查看,就会增加一条广告展现记录。每当用户点击一条广告,就会产生一条单击日志文件记录。使用类SQL的查询,可以很方便地将客户点击数据与特定广告投放相关联。

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

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

翻译

曾少宁
曾少宁

TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。

相关推荐