使用EMR+DLF+OSS-HDFS进行数据湖分析
1. 创建实验资源
开始实验之前,您需要先创建相关实验资源。
- 在云起实验室,单击创建资源。
- (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、用户信息等)。 说明:资源创建过程需要5~8分钟。
2. 准备实验环境
操作原理:
用实验分配的RAM用户登录到阿里云管控台,在OSS管控台的数据湖管理中,为实验提供的Bucket开通HDFS服务,作为后续要创建的数据表的存储地址。同时,创建好OSS文件夹供后续实验存储jar包使用。
操作目的:
学习如何为OSS Bucket开通HDFS服务,便于后续体验OSS-HDFS数据湖能力。
用实验分配的子账号登录阿里云管控台
- 打开Chromium网页浏览器,输入实验分配的用户名和密码,登录阿里云管控台
为OSS Bucket开通HDFS服务
- 复制下方地址,在Chromium网页浏览器打开新页签,粘贴并访问对象存储OSS管控台。
https://oss.console.aliyun.com/bucket
- 在左侧导航栏中,单击Bucket列表。
- 搜索实验为自己分配的Bucket。
- 点击进入以实验室子账号为名的Bucket,选择进入OSS Bucket的数据湖管理下的HDFS服务,单击开通HDFS服务。
3. 通过EMR管控台,登录集群ECS命令终端
操作原理:
进入EMR管控台,找到集群节点组,登录集群ECS命令终端
操作目的:
学习如何使用EMR管控台,以及如何登录到集群ECS实例。
在EMR管控台找到实验所分配集群对应的ECS实例
- 双击打开远程桌面的Chromium网页浏览器。
- 在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子用户密码到用户密码输入框,单击登录。
- 复制下方地址,在Chromium网页浏览器打开新页签,粘贴并访问EMR管控台。
https://emr-next.console.aliyun.com/#/region/cn-shanghai/resource/all/overview
- 找到实验为自己分配的集群,点击进入节点管理
- 在节点管理中,展开master节点,点击下方的ECS ID,进入ECS管控台
在ECS管控台进入实例命令终端
- 在ECS管控台点击“远程连接”进入实例远程连接页面
- 点击立即登录
- 选择证书认证,把云产品资源面板的 “密钥对私钥” 粘贴到秘钥处。点击确定。
- 进入实例页面
4. 熟悉OSS-HDFS操作,并创建目录
熟悉OSS-HDFS操作,并创建目录
操作原理:
使用Hadoop Shell命令操作OSS-HDFS,上传文件,创建目录,查看文件或目录信息,获取文件或目录大小。
操作目的:
学习如何在EMR集群命令终端上,用hadoop shell命令操作OSS-HDFS。同时创建后续实验需要的文件目录。
通过Hadoop Shell命令访问OSS-HDFS
- 通过ls命令,确认当前目录下是否有logtail.sh文件。如有,可继续第二步。
ls
如果没有,可通过vim命令快速建一个文件。
vim test.txt
- 选择当前目录下的内容,上传到自己的Bucket下,此处以logtail.sh为例。并创建dir文件夹。
注意:脚本中的Bucket名称(u-5stubb6d)要改为实验为自己分配的Bucket
# 上传文件 hadoop fs -put logtail.sh oss://u-5stubb6d.cn-shanghai.oss-dls.aliyuncs.com/ # 新建目录 hadoop fs -mkdir oss://u-5stubb6d.cn-shanghai.oss-dls.aliyuncs.com/dir/
- 查看文件或目录信息
hadoop fs -ls oss://u-5stubb6d.cn-shanghai.oss-dls.aliyuncs.com/
- 获取文件或目录大小
hadoop fs -du oss://u-5stubb6d.cn-shanghai.oss-dls.aliyuncs.com/
5. 通过Hive建库建表,做聚和分析
操作原理:
通过Hive在本地集群HDFS上建库,在OSS-HDFS上建表,插入数据做聚和分析。
操作目的:
学习如果在集群上使用HiveSQL,建库建表以及简单的数据分析。学习如何把表建在OSS-HDFS上。
进入Hive命令行
- 执行以下命令,切换为hadoop用户。
su hadoop
- 执行以下命令,进入Hive命令行。
hive
建库建表
- 创建库,本文示例中的库以testdb为例介绍。
create database if not exists testdb;
当返回信息包含OK时,表示创建库testdb成功。以下说明成功在集群本地hdfs上建立数据库。
- 创建表,本文示例中的表以t为例介绍。
注意:脚本中的Bucket名称(u-5stubb6d)要改为实验为自己分配的Bucket
use testdb; create table if not exists t (id bigint, value string) location 'oss://u-5stubb6d.cn-shanghai.oss-dls.aliyuncs.com/dir/';
- 查看表信息,看到location为自己的oss-hdfs Bucket,说明成功在oss-hdfs上创建表。
desc formatted t;
- 插入记录
insert into table t select 1, 'value-1';
当返回信息包含OK时,表示插入信息成功。
- 查询表中的前10条信息。预期会返回信息刚刚插入的记录
select * from t limit 10;
SQL操作
- 再依次插入2条记录
insert into table t select 2, 'value-2'; insert into table t select 11, 'value-1';
- 聚合操作
select value, count(id) from t group by value;
返回信息如下所示。
6. 在DLF查看元数据
操作原理:
在DLF上,查看刚刚创建的数据目录、库、表。
操作目的:
学习如何在DLF上查看在集群上创建的数据目录、库、表。
- 复制下方地址,在Chromium网页浏览器打开新页签,粘贴并访问DLF管控台。
https://dlf.console.aliyun.com/cn-shanghai
- 点击左侧元数据管理,在数据目录筛选框中,选择实验为自己分配的DLF catalog
- 找到自己刚刚创建的数据库"testdb"
- 进入该数据库,查到表列表,可以看到刚刚创建的表"t"
实验地址:https://developer.aliyun.com/adc/scenario/f7cf565798e34710acf483ba56e6ebf6