冬季实战营第五期:轻松入门学习大数据

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 基于EMR离线数据分析、基于Hologres轻松玩转一站式实时仓库、使用阿里云Elasticsearch快速搭建智能运维系统、推荐系统入门之使用协同过滤实现商品推荐保姆级手册

一、基于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,开启自动创建索引功能

  1. 在右侧概览页面Elasticsearch区域中,单击集群管理。
  2. 在Elasticsearch实例列表中,单击实例ID
  3. 在左侧导航栏,选择配置与管理 > 可视化控制
  4. 在Kibana区域中,单击修改配置
  5. 开启Kibana私网访问,此变更过程需等待3-5分钟。
  6. 返回上级页面,在Kibana区域中,单击公网入口
  7. 复制左侧云产品资源列表下的Elasticsearch登录名Elasticsearch登录密码,至Kibana登录页面的账号和密码,单击登录
  8. 在登录成功页面,单击Explore on my own

  1. 在左侧导航栏,单击Dev Tools(开发工具),再单击Go to work
  2. 在Console页签下,执行如下命令,开启阿里云ES实例的自动创建索引功能。
PUT _cluster/settings
{
"persistent": {
"action.auto_create_index": "true" 
}
}

开启成功后,结果如下。

{
  "acknowledged" : true,
  "persistent" : {
    "action" : {
      "auto_create_index" : "true"
    }
  },
  "transient" : { }
}


2.使用Metricbeat采集ECS上的系统数据

  1. 返回阿里云Elasticsearch管理控制台,单击Beats数据采集 > 创建采集器。

  1. 在创建采集器窗口中,单击Metricbeat

  1. 在系统弹出的确定服务授权对话框,单击确认,授权创建服务关联角色。

  1. 在采集器配置向导中,输入或选择采集器信息,复制左侧云产品资源列表下的Elasticsearch登录名Elasticsearch登录密码,至用户名密码。

  1. 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"]
  1. 选择采集器安装的ECS实例。

  1. 启动采集器并查看采集器安装情况,此生效过程需等待3~5分钟。
  1. 单击启动。启动成功后,系统弹出启动成功对话框。
  2. 单击前往采集中心查看,在采集器管理区域中,查看启动成功的Metricbeat采集器,等待采集器状态变为已生效1/1。
  1. 返回Kibana页面,在左侧导航栏,单击Dev Tools(开发工具)
  2. 在Console页签下,执行如下命令,查看索引。
GET _cat/indices?v

索引创建成功后,结果如下。

  1. 在左侧导航栏,单击Dashboard,搜索[Metricbeat System] Overview

  1. 单击进入[Metricbeat System] Overview页面,再单击Host Overview,可查看监控仪表板。


3.使用Filebeat采集ECS上的Nginx服务数据

  1. 返回阿里云Elasticsearch管理控制台 > Beats数据采集中心
  2. 在创建采集器区域,将鼠标移至Filebeat上,单击ECS日志

  1. 在采集器配置向导中,输入或选择采集器信息。完成后,单击下一步

填写Filebeat文件目录处,填写如下路径:

/var/log/nginx/

  1. filebeat.yml中更改如下脚本。

在第24行enabled更改为true。

在第28行更改paths:

- /var/log/nginx/*.log

  1. 单击下一步,选择采集器安装的ECS实例。

  1. 启动采集器并查看采集器安装情况,此生效过程需等待3~5分钟。
  2. 单击启动。启动成功后,系统弹出启动成功对话框。
  3. 单击前往采集中心查看,在采集器管理区域中,查看启动成功的Filebeat采集器,等待采集器状态变为已生效1/1。
  4. 返回Kibana页面,在左侧导航栏,单击Dev Tools(开发工具)
  5. 在Console页签下,执行如下命令,查看索引。
GET _cat/indices?v

索引创建成功后,结果如下。

  1. 在左侧导航栏,单击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

  • 0:表示点击。
  • 1:表示购买。
  • 2:表示收藏。
  • 3:表示加入购物车。

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个推荐的商品被购买。



相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
2月前
|
分布式计算 大数据 Java
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
50 5
|
2月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
50 3
|
2月前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
63 0
|
2月前
|
数据采集 数据可视化 大数据
大数据体系知识学习(三):数据清洗_箱线图的概念以及代码实现
这篇文章介绍了如何使用Python中的matplotlib和numpy库来创建箱线图,以检测和处理数据集中的异常值。
47 1
大数据体系知识学习(三):数据清洗_箱线图的概念以及代码实现
|
2月前
|
存储 SQL 分布式计算
大数据学习
【10月更文挑战第15天】
39 1
|
2月前
|
分布式计算 大数据 Linux
大数据体系知识学习(二):WordCount案例实现及错误总结
这篇文章介绍了如何使用PySpark进行WordCount操作,包括环境配置、代码实现、运行结果和遇到的错误。作者在运行过程中遇到了Py4JJavaError和JAVA_HOME未设置的问题,并通过导入findspark初始化和设置环境变量解决了这些问题。文章还讨论了groupByKey和reduceByKey的区别。
31 1
|
2月前
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
61 1
|
2月前
|
存储 机器学习/深度学习 分布式计算
大数据技术——解锁数据的力量,引领未来趋势
【10月更文挑战第5天】大数据技术——解锁数据的力量,引领未来趋势
|
13天前
|
存储 分布式计算 数据挖掘
数据架构 ODPS 是什么?
数据架构 ODPS 是什么?
105 7
|
13天前
|
存储 分布式计算 大数据
大数据 优化数据读取
【11月更文挑战第4天】
29 2
下一篇
无影云桌面