云小课 | 大数据融合分析:GaussDW(DWS) 轻松导入 MRS-Hive 数据源
摘要:通过建立 GaussDB(DWS)与 MRS 的连接,支持数据仓库服务 SQL on Hadoop,以外表方式实现 Hive 数据的快捷导入,满足大数据融合分析的应用场景。
本文分享自华为云社区《【云小课】EI第17课 大数据融合分析:GaussDB(DWS)轻松导入MRS-Hive数据源》,原文作者:Hi,EI 。
大数据融合分析时代,GaussDB(DWS)如需访问 MRS 数据源,该如何实现?本期云小课带您开启 MRS 数据源之门,通过远程读取 MRS 集群 Hive 上的 ORC 数据表完成数据导入 DWS。
准备环境
已创建 DWS 集群,需确保 MRS 和 DWS 集群在同一个区域、可用区、同一 VPC 子网内,确保集群网络互通。
基本流程
本实践预计时长:1 小时,基本流程如下:
1、创建 MRS 分析集群(选择 Hive、Spark、Tez 组件)。
2、通过将本地 txt 数据文件上传至 OBS 桶,再通过 OBS 桶导入 Hive,并由 txt 存储表导入 ORC 存储表。
3、创建 MRS 数据源连接。
4、创建外部服务器。
5、创建外表。
6、通过外表导入 DWS 本地表。
创建 MRS 分析集群
1.登录华为云控制台华为云控制台华为云控制台,选择“EI 企业智能 > MapReduce 服务”,单击“购买集群”,选择“自定义购买”,填写软件配置参数,单击“下一步”。
2.填写硬件配置参数,单击“下一步”。
3.填写高级配置参数如下表,单击“立即购买”,等待约 15 分钟,集群创建成功。
准备 MRS 的 ORC 表数据源
1.本地 PC 新建一个 product_info.txt,并拷贝以下数据,保存到本地。
2.登录 OBS 控制台,单击“创建桶”,填写以下参数,单击“立即创建”。
3.等待桶创建好,单击桶名称,选择“对象 > 上传对象”,将 product_info.txt 上传至 OBS 桶。
4.切换回 MRS 控制台,单击创建好的 MRS 集群名称,进入“概览”,单击“IAM 用户同步”所在行的“单击同步”,等待约 5 分钟同步完成。
5.回到 MRS 集群页面,单击“节点管理”,单击任意一台 master 节点,进入该节点页面,切换到“弹性公网 IP”,单击“绑定弹性公网 IP”,勾选已有弹性 IP 并单击“确定”,如果没有,请创建。记录此公网 IP。
6.确认主 master 节点。
使用 SSH 工具以 root 用户登录以上节点,root 密码为 Huawei_12345,切换到 omm 用户。
su - omm
执行以下命令查询主 master 节点,回显信息中“HAActive”参数值为“active”的节点为主 master 节点。
sh${BIGDATA_HOME}/om-0.0.1/sbin/status-oms.sh
7.使用 root 用户登录主 master 节点,切换到 omm 用户,并进入 Hive 客户端所在目录。
su - omm
cd /opt/client
8.在 Hive 上创建存储类型为 TEXTFILE 的表 product_info。
在/opt/client 路径下,导入环境变量。
sourcebigdata_env
登录 Hive 客户端。
beeline
依次执行以下 SQL 语句创建 demo 数据库及表 product_info。
CREATE DATABASE demo;USE demo;DROP TABLE product_info;
CREATE TABLE product_info(product_price int not null,product_id char(30) not null,product_time date ,product_level char(10) ,product_name varchar(200) ,product_type1 varchar(20) ,product_type2 char(10) ,product_monthly_sales_cnt int ,product_comment_time date ,product_comment_num int ,product_comment_content varchar(200))row format delimited fields terminated by ','stored as TEXTFILE
9.将 product_info.txt 数据文件导入 Hive。
切回到 MRS 集群,单击“文件管理”,单击“导入数据”。
OBS 路径:选择上面创建好的 OBS 桶名,找到 product_info.txt 文件,单击“是”。
HDFS 路径:选择/user/hive/warehouse/demo.db/product_info/,单击“是”。
单击“确定”,等待导入成功,此时 product_info 的表数据已导入成功。
10.创建 ORC 表,并将数据导入 ORC 表。
执行以下 SQL 语句创建 ORC 表。
DROP TABLE product_info_orc;
CREATE TABLE product_info_orc(product_price int not null,product_id char(30) not null,product_time date ,product_level char(10) ,product_name varchar(200) ,product_type1 varchar(20) ,product_type2 char(10) ,product_monthly_sales_cnt int ,product_comment_time date ,product_comment_num int ,product_comment_content varchar(200))row format delimited fields terminated by ','stored as orc;
将 product_info 表的数据插入到 Hive ORC 表 product_info_orc 中。
insert into product_info_orc select * from product_info;
查询 ORC 表数据导入成功。
select * from product_info_orc;
创建 MRS 数据源连接
1. 登录 DWS 管理控制台,单击已创建好的 DWS 集群,确保 DWS 集群与 MRS 在同一个区域、可用分区,并且在同一 VPC 子网下。
2. 切换到“MRS 数据源”,单击“创建 MRS 数据源连接”。
3. 选择前序步骤创建名为的“MRS01”数据源,用户名:admin,密码:Huawei@12345,单击“确定”,创建成功。
创建外部服务器
1. 使用 Data Studio 连接已创建好的 DWS 集群。
2. 新建一个具有创建数据库权限的用户 dbuser:
3. 切换为新建的 dbuser 用户:
4. 创建新的 mydatabase 数据库:
5. 执行以下步骤切换为连接新建的 mydatabase 数据库。
在 Data Studio 客户端的**“对象浏览器”**窗口,右键单击数据库连接名称,在弹出菜单中单击“刷新”,刷新后就可以看到新建的数据库。
右键单击“mydatabase”数据库名称,在弹出菜单中单击“打开连接”。
右键单击“mydatabase”数据库名称,在弹出菜单中单击“打开新的终端”,即可打开连接到指定数据库的 SQL 命令窗口,后面的步骤,请全部在该命令窗口中执行。
6. 为 dbuser 用户授予创建外部服务器的权限:
其中 FOREIGN DATA WRAPPER 的名字只能是 hdfs_fdw,dbuser 为创建 SERVER 的用户名。
7. 执行以下命令赋予用户使用外表的权限。
8. 切换回 Postgres 系统数据库,查询创建 MRS 数据源后系统自动创建的外部服务器。
返回结果如:
9. 切换到 mydatabase 数据库,并切换到 dbuser 用户。
10. 创建外部服务器。
SERVER 名字、地址、配置路径保持与 8 一致即可。
11. 查看外部服务器。
返回结果如下所示,表示已经创建成功:
创建外表
1. 获取 Hive 的 product_info_orc 的文件路径。
登录 MRS 管理控制台。
选择“集群列表 > 现有集群”,单击要查看的集群名称,进入集群基本信息页面。
单击“文件管理”,选择“HDFS 文件列表”。
进入您要导入到 GaussDB(DWS)集群的数据的存储目录,并记录其路径。
图 1 在 MRS 上查看数据存储路径
2. 创建外表。 SERVER 名字填写 10 创建的外部服务器名称,foldername 填写 1 查到的路径。
执行数据导入
1. 创建本地目标表。
2. 从外表导入目标表。
3. 查询导入结果。
那么,实践一下,教您快速上手数据仓库服务~
详情请戳这里了解。
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/d2b7cd70e88a42e52c35b62fb】。文章转载请联系作者。
评论