一、基于EMR离线数据分析
1.登录集群:
步骤:
本步骤将指导您如何登录EMR集群终端。
(1). 进入阿里云控制台首页,点击左侧菜单,输入关键词“emr”,点击 E-MapReduce 进入管理页面。
(2). 在E-MapReduce控制台页面上方,选择资源所在地域。例如下图中,地域切换为华东2(上海)。
说明:您可以在云产品资源列表中查看到您的E-MapReduce资源所在地域。
(3). 在E-MapReduce控制台页面的集群列表区域,单击您的集群名/ID。
说明:您可以在云产品资源列表中查看到您的E-MapReduce集群名/ID。
(4). 集群基础信息页面的主机信息区域,复制MASTER的节点的公网ip地址。
(5). 打开远程桌面终端LxShell
(6). 在终端中输入连接命令ssh root@[ipaddress]。您需要将[ipaddress]替换成第3步中复制公网地址,例如:
ssh root@139.xxx.xxx.230
命令显示结果如下:
(7). 输入 yes。
(8). 同意继续后将会提示输入登录密码。密码为 @Aliyun2021 (你可以使用粘贴快捷键SHIFT+CTRL+V)。
说明:输入密码的过程中没有回显,请确保键入内容正确。
登录成功后会显示如下信息。
2.上传数据到HDFS
步骤:
本步骤将指导您如何将自建数据上传到HDFS。
(1). 执行如下命令,创建HDFS目录。
说明:在LX终端中,粘贴快捷键为SHIFT+CTRL+V。
hdfs dfs -mkdir -p /data/student
(2). 上传文件到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
(3). 查看文件。
hdfs dfs -ls /data/student
3.使用hive创建表
简介:本步骤将指导您如何使用hive创建数据表,并使用hadoop文件系统中的数据加载到hive数据表中。
步骤:
(1). 执行如下命令,登录hive数据库。
hive
(2). 创建user表。
CREATE TABLE emrusers ( userid INT, movieid INT, rating INT, unixtime STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ;
(3). 执行如下命令,从hadoop文件系统加载数据到hive数据表。
LOAD DATA INPATH '/data/student/u.txt' INTO TABLE emrusers;
4.对表进行操作
简介:本步骤将指导您如何使用hive对数据表进行查询等操作。
步骤:
(1). 查看5行表数据。
select * from emrusers limit 5;
(2). 查询数据表中有多少条数据。
select count(*) from emrusers;
返回结果如下,您可以看到您数据表中一共有多少数据,
(3). 查询数据表中评级最高的三个电影。
select movieid,sum(rating) as rat from emrusers group by movieid order by rat desc limit 3;
返回结果如下,您可以看到您数据表中评级最高的三个电影。
二、基于Hologres轻松玩转一站式实时仓库
1.本实践整体架构说明
场景描述
在阿里云大数据服务中,利用MaxCompute服务进行海量历史推送数据的存储以及查询,同时利用实时计算Flink进行实时广告曝光数据的收集,并同历史数据一起汇聚在阿里云实时交互式查询工具Hologres中,最后利用DataV进行动态展示。
本最佳实践通过一个实际的demo来演示如何建立Maxcompute集群,使用Flink收集实时数据,并利用Hologres进行汇聚查询。
系统架构
2.创建Hologres数据库
(1)在远程桌面里登陆控制台
1、点击右侧图标切换到远程桌面操作界面。
2、双击打开桌面 FireFox浏览器,在RAM用户登录框中点击“下一步”,复制上面的“子用户密码” ,按CTRL + V把密码粘贴到密码输区登陆子账户(后续在远程桌面里的粘贴操作均使用CTRL + V快捷键)。
3、复制下面Hologres控制台地址,在FireFox浏览器里打开Hologres控制台
https://hologram.console.aliyun.com
(2)开始创建数据库
1、在Hologres引擎管理页面,切换到资源所在地域
注意:参考如下图片切换地域到 华北2(北京)。
2、 单击实例列表,选择实例名称,进入实例详情页。
3、在实例详情页左侧导航栏,单击Database管理,并单击创建Database。
3、在DB授权页面,单击右上角新增数据库。
4、在新增数据库对话框中,自定义数据库名称,本示例为db4demo,然后单击确认。
5、在DB授权页面,选择刚刚创建的数据库,单击用户授权。
6、在用户授权页面,单击新增授权。
在新增授权对话框中,下拉选择被授权账号和用户组,最后单击确定。
配置说明:
1)选择被授权账号时,选择账号名称格式为labsxxxx@aliyun-inc.com:u-xxxxx的用户进行授权。
2)选择用户组时,默认选择Developer。
3. 创建Hologres数据表
(1)在Hologres实例详情页面,单击登录实例。
(2)在HoloWeb页面,单击SQL编辑器。
(3) 在SQL编辑器页面,单击新增SQL窗口,在新增的临时Query查询窗口中,下拉选择连接名和数据库名。
配置说明:
1) 连接名:连接名为上一步骤创建的连接名称。
2) 数据库:选择Hologres中创建的数据库,本示例为db4demo。
(4)将以下代码拷贝到SQL编辑器,然后单击运行
BEGIN ; DROP TABLE IF EXISTS log_pv; CREATE TABLE IF NOT EXISTS log_pv ( date_time DATE NOT NULL, day_time TEXT , rmid TEXT NOT NULL, rmid_hash TEXT, ver TEXT, publisher_id TEXT, ip TEXT, bc TEXT, camp TEXT, message TEXT ); CALL set_table_property('log_pv', 'distribution_key', 'rmid'); CALL set_table_property('log_pv', 'segment_key', 'date_time'); CALL set_table_property('log_pv', 'clustering_key', 'rmid'); CALL set_table_property('log_pv', 'shard_count', '20'); COMMIT ;
执行成功后会返回执行成功结果,如果未显示下图所示结果请排查并重新执行。
4.创建flink数据处理作业
(1) 复制下面的地址,在远程桌面里打开实时计算控制台
https://realtime-compute.console.aliyun.com/console/cell
(2)在实时计算控制台页面,切换到资源所在地域
注意:
在当前账号缺少权限对话框中,单击关闭。参考如下图片切换地域到 华北2(北京)。
(3)单击进入开发控制台。
(4)在导航栏左侧,单击作业开发,然后单击新建作业。
(5)填写 作业名称,并确保文件类型为“SQL”。
(6)将以下拷贝到SQL编辑器,并修改其中的配置项。
CREATE TEMPORARY TABLE randomSource ( date_time DATE, day_time VARCHAR, rmid VARCHAR, rmid_hash VARCHAR, ver VARCHAR, publisher_id VARCHAR, ip VARCHAR, bc VARCHAR, camp VARCHAR, message VARCHAR ) WITH ('connector' = 'datagen'); CREATE TEMPORARY TABLE pv_test ( date_time DATE, day_time VARCHAR, rmid VARCHAR, rmid_hash VARCHAR, ver VARCHAR, publisher_id VARCHAR, ip VARCHAR, bc VARCHAR, camp VARCHAR, message VARCHAR ) WITH ( 'connector' = 'hologres', 'endpoint' = '', 'username' = '', 'password' = '', 'dbname' = 'db4demo', 'tablename' = 'log_pv' ); BEGIN STATEMENT SET; INSERT INTO pv_test SELECT CAST ('2019-04-22' as DATE), '12:00:00', '000991', '87934707160EC0397EBFE739BB0085F7', '0', '6', '175.18.164.59', 'XJIAfnFzxs', 'e1006', 'a' FROM randomSource; INSERT INTO pv_test SELECT CAST ('2019-04-22' as DATE), '12:00:00', '001229', '87934707160EC0397EBFE739BB0085F7', '0', '6', '175.18.164.59', 'XJIAfmhLiq', 'e101', 'c' FROM randomSource; END;
配置说明:
1) username:子账号的AccessKey ID(如下方图一)。
2) password:子账号的AccessKey Secret(如下方图一)。
3) endpoint:Hologres实例的VPC地址,该地址可以在Hologres的实例配置中找到(如下方图二)。
图一:
图二:
(7)创建并配置Session集群。
a. 在左侧导航栏点击Session集群,然后单击右上角创建Session集群。
b.在Session集群配置页,进行配置。
- 在名称栏,自定义填写集群名称。
- 将状态调整为 RUNNING。
- 开启设置为SQL Previews集群 开关。
c. 点击创建Session集群完成创建。
d.等待Session集群状态为 RUNNING后,去作业开发执行SQL作业。
(8)点击作业开发,执行SQL作业:点击控制台右上角 运行 按钮。在弹出执行确认页面,点击执行。
(9)执行完毕后点击上线。
(10)立即启动SQL作业。
a. 单击运维。
b. 在运维界面,单击启动。
(11)在Hologres管理控制台的HoloWeb页面,单击元数据管理,然后双击log_pv,最后单击数据预览,即可看到作业运行的结果。
三、使用阿里云Elasticsearch快速搭建智能运维系统
登录Elasticsearch控制台:https://elasticsearch-cn-hangzhou.console.aliyun.com
1.登录Kibana,开启自动创建索引功能
- 在右侧概览页面Elasticsearch区域中,单击集群管理。
- 在Elasticsearch实例列表中,单击实例ID。
- 在左侧导航栏,选择配置与管理 > 可视化控制。
- 在Kibana区域中,单击修改配置。
- 开启Kibana私网访问,此变更过程需等待3-5分钟。
- 返回上级页面,在Kibana区域中,单击公网入口。
- 复制左侧云产品资源列表下的Elasticsearch登录名和Elasticsearch登录密码,至Kibana登录页面的账号和密码,单击登录。
- 在登录成功页面,单击Explore on my own。
- 在左侧导航栏,单击Dev Tools(开发工具),再单击Go to work。
- 在Console页签下,执行如下命令,开启阿里云ES实例的自动创建索引功能。
PUT _cluster/settings { "persistent": { "action.auto_create_index": "true" } }
开启成功后,结果如下。
{ "acknowledged" : true, "persistent" : { "action" : { "auto_create_index" : "true" } }, "transient" : { } }
2.使用Metricbeat采集ECS上的系统数据
- 返回阿里云Elasticsearch管理控制台,单击Beats数据采集 > 创建采集器。
- 在创建采集器窗口中,单击Metricbeat。
- 在系统弹出的确定服务授权对话框,单击确认,授权创建服务关联角色。
- 在采集器配置向导中,输入或选择采集器信息,复制左侧云产品资源列表下的Elasticsearch登录名和Elasticsearch登录密码,至用户名密码。
- 在metricbeat.yml中末尾添加如下脚本,单击下一步。
metricbeat.modules: - module: system metricsets: - cpu - load - memory - network - process - process_summary - uptime - socket_summary - core - diskio - filesystem - fsstat enabled: true period: 10s processes: ['.*'] cpu.metrics: ["percentages"] core.metrics: ["percentages"]
- 选择采集器安装的ECS实例。
- 启动采集器并查看采集器安装情况,此生效过程需等待3~5分钟。
- 单击启动。启动成功后,系统弹出启动成功对话框。
- 单击前往采集中心查看,在采集器管理区域中,查看启动成功的Metricbeat采集器,等待采集器状态变为已生效1/1。
- 返回Kibana页面,在左侧导航栏,单击Dev Tools(开发工具)。
- 在Console页签下,执行如下命令,查看索引。
GET _cat/indices?v
索引创建成功后,结果如下。
- 在左侧导航栏,单击Dashboard,搜索[Metricbeat System] Overview。
- 单击进入[Metricbeat System] Overview页面,再单击Host Overview,可查看监控仪表板。
3.使用Filebeat采集ECS上的Nginx服务数据
- 返回阿里云Elasticsearch管理控制台 > Beats数据采集中心。
- 在创建采集器区域,将鼠标移至Filebeat上,单击ECS日志。
- 在采集器配置向导中,输入或选择采集器信息。完成后,单击下一步。
在填写Filebeat文件目录处,填写如下路径:
/var/log/nginx/
- 在filebeat.yml中更改如下脚本。
在第24行enabled更改为true。
在第28行更改paths:
- /var/log/nginx/*.log
- 单击下一步,选择采集器安装的ECS实例。
- 启动采集器并查看采集器安装情况,此生效过程需等待3~5分钟。
- 单击启动。启动成功后,系统弹出启动成功对话框。
- 单击前往采集中心查看,在采集器管理区域中,查看启动成功的Filebeat采集器,等待采集器状态变为已生效1/1。
- 返回Kibana页面,在左侧导航栏,单击Dev Tools(开发工具)。
- 在Console页签下,执行如下命令,查看索引。
GET _cat/indices?v
索引创建成功后,结果如下。
- 在左侧导航栏,单击Discover,点击选择filebeat,可查看采集的数据详情。
四、推荐系统入门之使用协同过滤实现商品推荐
1.开通机器学习PAI服务
1. 使用您的阿里云账号登录阿里云官网。
2. 在顶部的导航栏,依次将鼠标悬停到产品>人工智能处,然后单击机器学习平台PAI。
3. 在机器学习PAI控制台首页,单击立即开通。
4. 在服务开通页面,选择要开通的机器学习PAI服务所在的区域,例如华东2(上海),然后单击页面下方的立即购买。
5. 在订单确认页面,仔细阅读《机器学习(PAI)服务协议》后,勾选我已阅读并同意,最后单击立即开通。
6. 开通成功后,单击前往PAI管理控制台。
2.创建PAI Studio项目
1. 在控制台左侧导航栏,单击可视化建模(Studio)。
2. 在PAI Studio页面单击创建项目。
3. 在右侧弹出的创建项目页面,MaxCompute选择按量付费,填入项目名称,然后单击确定。
PAI Studio底层计算依赖MaxCompute,如果您未开通过当前区域的MaxCompute,请按照页面提示去购买。
a. 单击购买。
b. 选择步骤一开通的机器学习PAI服务所在区域,例如华东2(上海),然后单击立即购买。
c. 仔细阅读《大数据计算服务MaxCompute(按量计算)服务协议》后,勾选我已阅读并同意,最后单击立即开通。
d. 开通成功后返回PAI Studio控制台页面,再次单击创建项目,在创建项目页面选择MaxCompute付费方式为按量付费,然后填入项目名称,最后单击确认。
4. 项目创建需要1分钟左右进行初始化,等待项目操作列出现进入机器学习,表示项目创建完成。
3.创建实验
1. 单击左侧导航栏的首页。
2. 在模板列表找到【推荐算法】商品推荐,然后单击从模板创建。
3. 在弹出的新建实验框,单击确定。
4.查看实验数据
1. 右键单击cf_训练_data节点,然后单击查看数据。
源数据的字段解释如下:
字段名 |
含义 |
类型 |
描述 |
user_id |
用户编号 |
STRING |
购物的用户ID。 |
item_id |
物品编号 |
STRING |
被购买物品的编号。 |
active_type |
购物行为 |
STRING |
|
active_date |
购物时间 |
STRING |
购物发生的时间。 |
可以看到训练数据为7月份以前的用户购买行为数据。
2. 右键单击cf_结果_data,然后单击查看数据。
可以看到结果数据为7月份以后的用户购买行为数据。
5.运行实验
1. 单击左上角运行。
2. 请耐心等到3~5分钟,实验运行完成如下所示。
6.查看实验结果
1. 右键单击join-1节点,然后单击查看数据。
表中similar_item字段为经过协同过滤算法计算得出的该用户购买可能性最大的商品。
2. 单击全表统计-1节点,然后单击查看数据。
表1统计了根据协同过滤算法推荐的商品数量,共有18065个商品可推荐。
3. 单击全表统计-2节点,然后单击查看数据。
表2统计了7月份真实购买行为数据中与经过协同过滤算法所推荐的商品的命中数量,可以看到有60个推荐的商品被购买。