基于 EMR 离线数据分析
1. 创建资源
开始实验之前,您需要先创建 ECS 实例资源。
在实验室页面,单击创建资源。
(可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如 IP 地址、用户信息等)。
说明:资源创建过程需要 20~30 分钟。
2. 登陆集群
本步骤将指导您如何登录 EMR 集群终端。
- 在远程桌面中点击 Firefox ESR,会自动弹出分配子账号的登录页面,点击下一步,从左侧复制子用户密码,粘贴(温馨提示:粘贴快捷键为 CTRL+V)到输入框。
- 登录成功后进入阿里云控制台首页,点击左侧菜单,输入关键词“emr”,点击 E-MapReduce 进入管理页面。
3.在 E-MapReduce 控制台页面上方,选择资源所在地域。例如下图中,地域切换为华东 2(上海)。
说明:您可以在云产品资源列表中查看到您的 E-MapReduce 资源所在地域。
4.在 E-MapReduce 控制台页面的集群列表区域,单击您的集群名/ID。
说明:您可以在云产品资源列表中查看到您的 E-MapReduce 集群名/ID。
5.集群基础信息页面的主机信息区域,复制 MASTER 的节点的公网 ip 地址。
- 打开远程桌面终端 LxShell
- 在终端中输入连接命令 ssh root@[ipaddress]。您需要将[ipaddress]替换成第 3 步中复制公网地址,例如:
ssh root@139.xxx.xxx.230
命令显示结果如下:
- 输入 yes。
- 同意继续后将会提示输入登录密码。密码为 @Aliyun2021 (你可以使用粘贴快捷键 SHIFT+CTRL+V)。
说明:输入密码的过程中没有回显,请确保键入内容正确。
登录成功后会显示如下信息。
3. 上传数据到 HDFS
本步骤将指导您如何将自建数据上传到 HDFS。
- 执行如下命令,创建 HDFS 目录。
说明:在 LX 终端中,粘贴快捷键为 SHIFT+CTRL+V。
hdfs dfs -mkdir -p /data/student
- 上传文件到 hadoop 文件系统。
a.执行如下命令,创建 u.txt 文件。
#创建u.txt文件
vim u.txt
b.按 "i" 键进入编辑模式,通过粘贴快捷键(SHIFT+CTRL+V)将下方内容复制到文件中,按"Esc"返回命令模式,输入":wq"保存
说明:第一列表示 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
c. 上传文件 u.txt 到 hadoop 文件系统。
hdfs dfs -put u.txt /data/student
- 查看文件。
hdfs dfs -ls /data/student
4. 使用 hive 创建表
本步骤将指导您如何使用 hive 创建数据表,并使用 hadoop 文件系统中的数据加载到 hive 数据表中。
- 执行如下命令,登录 hive 数据库。
hive
- 创建 user 表。
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;
5. 对表进行操作
本步骤将指导您如何使用 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;