基于EMR离线数据分析
本实验带您体验基于EMR集群进行离线数据分析。
场景简介
数据量爆发式增长的今天,数字化转型成为IT行业的热点,数据需要更深度的价值挖掘,应对未来不断变化的需求。海量离线数据分析可以应用于多种商业系统环境,例如电商海量日志分析、用户行为画像分析、科研行业的海量离线计算分析任务等场景。
本场景将基于EMR Hadoop集群资源。通过本教程的操作,带您体验如何开通登录EMR Hadoop集群,简单进行hive操作,使用hive对数据进行加载,计算等操作。
费用说明
本实验时长1个小时,预计产生费用为3.54元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。
背景知识
开源大数据平台E-MapReduce并授权
阿里云E-MapReduce服务(EMR on ECS)在运行时需要具备访问其他阿里云资源及执行相关操作的权限。本步骤将为您介绍首次使用E-MapReduce服务时,阿里云账号需同意系统自动创建E-MapReduce服务所需的默认角色。
如果您已开通开源大数据平台E-MapReduce并授权相关角色,请跳过此步骤。
在依赖检测页面,单击去授权。

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

开通数据湖构建DLF并授权
本实验EMR集群所使用的元数据为DLF统一元数据,所以需要开通数据湖构建DLF产品。本步骤将指导您如何开通数据湖构建DLF产品并授权相关角色。
如果您已开通数据湖构建DLF并授权相关角色,请跳过此步骤。
登录数据湖构建DLF控制台。
在数据湖构建DLF控制台中,单击免费开通数据湖构建。

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

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

创建实验资源
在实验页面,勾选我已阅读并同意《阿里云云起实践平台服务协议》和我已授权阿里云云起实践平台创建、读取及释放实操相关资源后,单击开始实操。
创建资源需要5分钟左右的时间,请您耐心等待。
在云产品资源列表,您可以查看本场景涉及的云产品资源信息。

登录集群
本步骤将指导您如何登录EMR集群终端。
在EMR on ECS页面,找到目标集群,单击其右侧操作列下的节点管理。

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

从ECS控制台进入实例命令终端。
在实例详情页签的基本信息区域,单击重置密码。

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

返回如下结果,表示ECS实例root用户的登录密码重置成功。
说明如果遇到云助手版本较低的问题,请根据页面提示手动升级云助手版本。

在实例详情页签,单击远程连接。

在远程连接对话框中,单击通过Workbench远程连接的立即登录。

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

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

上传数据到HDFS
本步骤将指导您如何将自建数据上传到HDFS。
执行如下命令,创建HDFS目录。
hdfs dfs -mkdir -p /data/student上传文件到hadoop文件系统。
执行如下命令,创建u.txt文件。
#创建u.txt文件 vim u.txt按
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按
Esc退出编辑模式,输入:wq并回车,退出并保存文件。执行如下命令,上传文件u.txt到hadoop文件系统。
hdfs dfs -put u.txt /data/student
执行如下命令,查看文件。
hdfs dfs -ls /data/student
使用hive创建表
本步骤将指导您如何使用hive创建数据表,并使用hadoop文件系统中的数据加载到hive数据表中。
执行如下命令,登录hive数据库。
hive执行如下命令,创建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' ;
执行如下命令,从hadoop文件系统加载数据到hive数据表。
LOAD DATA INPATH '/data/student/u.txt' INTO TABLE emrusers;
对表进行操作
本步骤将指导您如何使用hive对数据表进行查询等操作。
执行如下命令,查看5行表数据。
select * from emrusers limit 5;
执行如下命令,查询数据表中一共有多少条数据。
select count(*) from emrusers;返回结果如下,您可以看到您数据表中一共有多少数据,

执行如下命令,查询数据表中评级最高的三个电影。
select movieid,sum(rating) as rat from emrusers group by movieid order by rat desc limit 3;返回结果如下,您可以看到您数据表中评级最高的三个电影。

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

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


















