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步:配置一个集群
- 在Cluster name(集群名称)域中,输入描述名称。名称不要求唯一。
- Termination protection(中止保护)域保持默认值Yes(是)不变。这个值可以保证集群不会因为意外事件或错误而关闭。
- Logging(日志记录)域保留默认值Enabled(启用)。日志数据将发送到Amazon S3。
- 在Log folder S3 location(日志文件夹在S3的位置)域中,输入以下格式的库名称与文件夹:s3://<bucket name>/<folder>/
- Debugging(调试)域保留默认值Enabled(启用)。
Tag(标签)部分是可选的。EMR集群最多可以添加10个标签。每一个标签都包含一对区分大小写的键和值。
第2步:创建软件配置
- 在Hadoop distribution(Hadoop发行版)下拉框保留Amazon默认值。
- 在AMI version(AMI版本)下拉框中,选择2.4.2(Hadoop 1.0.3)。
- 在Application to be installed(安装的应用程序)中,保留Hive,删除Pig。
步骤3:创建硬件配置
- 在Network(网络)域中,选择Launch into EC-2 Classic(在EC-2 Classis中启动)。
- 在EC2 Subnet(EC2子网)域中,选择No preference(无首选)。
- 在Master(主)、Core(核心)和Task(任务)域中,将EC2实例类型设置为m1.small。所有节点都使用小型实例来处理轻量负载(降低费用)。它们的默认Count(数量)分别为1、2和0。所有三个域都取消选定Request Spot Instances(请求竞价实例)。
注:每个AWS帐号可支持的最大节点数量为20个。如果运行两个集群,那么两个集群上运行的总节点数不能超过20个。如果需要使用多于20个节点,则必须向亚马逊提交请求增加亚马逊EC2实例的上限。
第4步:创建安全性和访问控制
- 在EC2 key pair(EC2密钥对)域中,在列表上选择一个Amazon EC2密钥对。这样就可以使用Secure Shell (SSH)连接主节点。
- 在IAM user access(IAM用户访问)域中,保留默认值No other IAM users(不允许其他IAM用户)。
- 在EC2 role(EC2角色)框中,保留默认值no roles found(找不到角色)。
Bootstrap Actions(启动操作)区域不需要修改。
第5步:指定集群参数
- 在Steps(步骤)区域中,选择列表的Hive Program(Hive程序),然后单击Configure and add(配置与添加)。
- 在Name(名称)域中,默认值为Hive Program(Hive 程序)。
- 在Script s3 Location(S3脚本位置)域(必填)中,输入BucketName/path/ScriptName格式的值,例如:s3n://elasticmapreduce/samples/hive-ads/libs/model-build。
- 在Input S3 Location(S3输入位置)域(可选)中,输入BucketName/path格式的值,例如:s3n://elasticmapreduce/samples/hive-ads/tables。这个值会通过参数INPUT传递到Hive脚本中。
- 在Output S3 Location(S3输出位置)域(可选)中,输入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(小结)窗口。
和例子“使用Apache Hive实现基于情景的广告投放”一样,我们必须在一个主节点上准备一个Hive会话,然后才能执行查询和分析大数据。
我们要每隔5分钟将Impression(广告展现)和Click Log Files(点击日志文件)推送到Amazon S3。每当有一条广告显示给客户查看,就会增加一条广告展现记录。每当用户点击一条广告,就会产生一条单击日志文件记录。使用类SQL的查询,可以很方便地将客户点击数据与特定广告投放相关联。
总之,分析大数据的最佳方法是在Hadoop上运行Hive,并且使用SQL查询来简化日志数据的分析。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
翻译
TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。
相关推荐
-
Cloudera-Hortonworks合并或将减少Hadoop用户的选择
近日大数据领域两家顶级供应商达成交易协议,这可能会影响Hadoop和其他开源数据处理框架,并使大数据用户的技术 […]
-
采矿设备制造商利用BI on Hadoop来挖掘数据
如果大数据要取得巨大成功,则需要提供给更多的最终用户群组。但广泛使用的商业智能工具尚不能轻松分析最大的大数据, […]
-
新Qlik Sense功能可用于云计算、AI和大数据
一年前,Qlik公司公布其长期计划,即将高级云计算、AI和大数据功能添加到其自助式BI和数据可视化软件中。现在 […]
-
Cambridge Analytica秘密收集Facebook数据表明对道德数据挖掘的需求
当有关Cambridge Analytica公司秘密收集Facebook数据的消息传出时,这暴露了一个薄弱环节 […]