基于EMR离线数据分析

更新时间:
复制为 MD 格式

本实验带您体验基于EMR集群进行离线数据分析。

场景简介

数据量爆发式增长的今天,数字化转型成为IT行业的热点,数据需要更深度的价值挖掘,应对未来不断变化的需求。海量离线数据分析可以应用于多种商业系统环境,例如电商海量日志分析、用户行为画像分析、科研行业的海量离线计算分析任务等场景。

本场景将基于EMR Hadoop集群资源。通过本教程的操作,带您体验如何开通登录EMR Hadoop集群,简单进行hive操作,使用hive对数据进行加载,计算等操作。

费用说明

本实验时长1个小时,预计产生费用为3.54元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。

背景知识

开源大数据平台E-MapReduce并授权

阿里云E-MapReduce服务(EMR on ECS)在运行时需要具备访问其他阿里云资源及执行相关操作的权限。本步骤将为您介绍首次使用E-MapReduce服务时,阿里云账号需同意系统自动创建E-MapReduce服务所需的默认角色。

说明

如果您已开通开源大数据平台E-MapReduce并授权相关角色,请跳过此步骤。

  1. 登录E-MapReduce控制台

  2. 依赖检测页面,单击去授权

    image

  3. 访问控制快速授权页面,单击页面下方的同意授权

    30b485f08d5d195202d32be1fa4addce

开通数据湖构建DLF并授权

本实验EMR集群所使用的元数据为DLF统一元数据,所以需要开通数据湖构建DLF产品。本步骤将指导您如何开通数据湖构建DLF产品并授权相关角色

说明

如果您已开通数据湖构建DLF并授权相关角色,请跳过此步骤。

  1. 登录数据湖构建DLF控制台

  2. 在数据湖构建DLF控制台中,单击免费开通数据湖构建

    image

  3. 在产品开通页面,单击立即开通

    image

  4. 返回至数据湖构建DLF控制台并刷新页面,根据页面提示,开通数据湖构建服务访问外部数据源的权限和OSS服务。

    image

创建实验资源

  1. 在实验页面,勾我已阅读并同意《阿里云云起实践平台服务协议》我已授权阿里云云起实践平台创建、读取及释放实操相关资源后,单击开始实操

  2. 创建资源需要5分钟左右的时间,请您耐心等待。

  3. 云产品资源列表,您可以查看本场景涉及的云产品资源信息。

    image

登录集群

本步骤将指导您如何登录EMR集群终端。

  1. 登录E-MapReduce控制台

  2. EMR on ECS页面,找到目标集群,单击其右侧操作列下的节点管理

    image

  3. 节点管理页签,展开Master节点组,并单击组内节点的ID

    image

  4. ECS控制台进入实例命令终端。

    1. 实例详情页签的基本信息区域,单击重置密码

      image

    2. 重置实例密码对话框中,设置新密码确认密码重置密码的方式选择在线重置密码配置SSH密码登录策略选择开启,单击确认修改

      image

      返回如下结果,表示ECS实例root用户的登录密码重置成功。

      说明

      如果遇到云助手版本较低的问题,请根据页面提示手动升级云助手版本。

      image

    3. 实例详情页签,单击远程连接

      image

    4. 远程连接对话框中,单击通过Workbench远程连接立即登录

      image

    5. 登录实例对话框中,连接方式选择终端连接,输入重置后的root用户密码,单击登录

      image

      返回如下界面,表示已成功远程连接至Master节点。

      image

上传数据到HDFS

本步骤将指导您如何将自建数据上传到HDFS。

  1. 执行如下命令,创建HDFS目录。

hdfs dfs -mkdir -p /data/student
  1. 上传文件到hadoop文件系统。

    1. 执行如下命令,创建u.txt文件。

      #创建u.txt文件
      vim u.txt
    2. i进入编辑模式,将下方内容复制到文件中。

      说明

      第一列表示userid,第二列表示movieid,第三列表示rating,第四列表示unixtime。

      196	242	3	881250949
      186	302	3	891717742
      22	377	1	878887116
      244	51	2	880606923
      166	346	1	886397596
      298	474	4	884182806
      115	265	2	881171488
      253	465	5	891628467
      305	451	3	886324817
      6	86	3	883603013
      62	257	2	879372434
      286	1014	5	879781125
      200	222	5	876042340
      210	40	3	891035994
      224	29	3	888104457
      303	785	3	879485318
      122	387	5	879270459
      194	274	2	879539794
      291	1042	4	874834944
      234	1184	2	892079237
      119	392	4	886176814
      167	486	4	892738452
      299	144	4	877881320
      291	118	2	874833878
      308	1	4	887736532
      95	546	2	879196566
      38	95	5	892430094
      102	768	2	883748450
      63	277	4	875747401
      160	234	5	876861185
      50	246	3	877052329
      301	98	4	882075827
      225	193	4	879539727
      290	88	4	880731963
      97	194	3	884238860
      157	274	4	886890835
      181	1081	1	878962623
      278	603	5	891295330
      276	796	1	874791932
      7	32	4	891350932
      10	16	4	877888877
      284	304	4	885329322
      201	979	2	884114233
      276	564	3	874791805
      287	327	5	875333916
      246	201	5	884921594
      242	1137	5	879741196
      249	241	5	879641194
      99	4	5	886519097
      178	332	3	882823437
      251	100	4	886271884
      81	432	2	876535131
      260	322	4	890618898
      25	181	5	885853415
      59	196	5	888205088
      72	679	2	880037164
      87	384	4	879877127
      290	143	5	880474293
      42	423	5	881107687
      292	515	4	881103977
      115	20	3	881171009
      20	288	1	879667584
      201	219	4	884112673
      13	526	3	882141053
      246	919	4	884920949
      138	26	5	879024232
      167	232	1	892738341
      60	427	5	883326620
      57	304	5	883698581
      223	274	4	891550094
      189	512	4	893277702
      243	15	3	879987440
      92	1049	1	890251826
      246	416	3	884923047
      194	165	4	879546723
      241	690	2	887249482
      178	248	4	882823954
      254	1444	3	886475558
      293	5	3	888906576
      127	229	5	884364867
      225	237	5	879539643
      299	229	3	878192429
      225	480	5	879540748
      276	54	3	874791025
      291	144	5	874835091
      222	366	4	878183381
      267	518	5	878971773
      42	403	3	881108684
      11	111	4	891903862
      95	625	4	888954412
      8	338	4	879361873
      162	25	4	877635573
      87	1016	4	879876194
      279	154	5	875296291
      145	275	2	885557505
      119	1153	5	874781198
      62	498	4	879373848
      62	382	3	879375537
      28	209	4	881961214
      135	23	4	879857765
      32	294	3	883709863
      90	382	5	891383835
      286	208	4	877531942
      293	685	3	888905170
      216	144	4	880234639
      166	328	5	886397722
    3. Esc退出编辑模式,输入:wq并回车,退出并保存文件。

    4. 执行如下命令,上传文件u.txthadoop文件系统。

      hdfs dfs -put u.txt /data/student
  2. 执行如下命令,查看文件。

    hdfs dfs -ls /data/student

    image

使用hive创建表

本步骤将指导您如何使用hive创建数据表,并使用hadoop文件系统中的数据加载到hive数据表中。

  1. 执行如下命令,登录hive数据库。

    hive
  2. 执行如下命令,创建testdb数据库和user表。

    create database if not exists testdb;
    use testdb;
    CREATE TABLE emrusers (
       userid INT,
       movieid INT,
       rating INT,
       unixtime STRING ) 
      ROW FORMAT DELIMITED 
      FIELDS TERMINATED BY '\t' 
      ;

    image

  3. 执行如下命令,从hadoop文件系统加载数据到hive数据表。

    LOAD DATA INPATH '/data/student/u.txt' INTO TABLE emrusers;

    image

对表进行操作

本步骤将指导您如何使用hive对数据表进行查询等操作。

  1. 执行如下命令,查看5行表数据。

    select * from emrusers limit 5;

    image

  2. 执行如下命令,查询数据表中一共有多少条数据。

    select count(*) from emrusers;

    返回结果如下,您可以看到您数据表中一共有多少数据,

    image

  3. 执行如下命令,查询数据表中评级最高的三个电影。

    select movieid,sum(rating) as rat from emrusers group by movieid order by rat desc limit 3;

    返回结果如下,您可以看到您数据表中评级最高的三个电影。

    image

清理资源

  • 在完成实验后,如果无需继续使用资源,选择不保留资源,单击结束实操。在结束实操对话框中,单击确定

    image

  • 在完成实验后,如果需要继续使用资源,选择付费保留资源,单击结束实操。在结束实操对话框中,单击确定。请随时关注账户扣费情况,避免发生欠费。

    image