关于华为云:云小课-大数据融合分析GaussDWDWS轻松导入MRSHive数据源

50次阅读

共计 8205 个字符,预计需要花费 21 分钟才能阅读完成。

摘要: 通过建设 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,并拷贝以下数据,保留到本地。

100,XHDK-A-1293-#fJ3,2017-09-01,A,2017 Autumn New Shirt Women,red,M,328,2017-09-04,715,good
205,KDKE-B-9947-#kL5,2017-09-01,A,2017 Autumn New Knitwear Women,pink,L,584,2017-09-05,406,very good!
300,JODL-X-1937-#pV7,2017-09-01,A,2017 autumn new T-shirt men,red,XL,1245,2017-09-03,502,Bad.
310,QQPX-R-3956-#aD8,2017-09-02,B,2017 autumn new jacket women,red,L,411,2017-09-05,436,It's really super nice
150,ABEF-C-1820-#mC6,2017-09-03,B,2017 Autumn New Jeans Women,blue,M,1223,2017-09-06,1200,The seller's packaging is exquisite
200,BCQP-E-2365-#qE4,2017-09-04,B,2017 autumn new casual pants men,black,L,997,2017-09-10,301,The clothes are of good quality.
250,EABE-D-1476-#oB1,2017-09-10,A,2017 autumn new dress women,black,S,841,2017-09-15,299,Follow the store for a long time.
108,CDXK-F-1527-#pL2,2017-09-11,A,2017 autumn new dress women,red,M,85,2017-09-14,22,It's really amazing to buy
450,MMCE-H-4728-#nP9,2017-09-11,A,2017 autumn new jacket women,white,M,114,2017-09-14,22,Open the package and the clothes have no odor
260,OCDA-G-2817-#bD3,2017-09-12,B,2017 autumn new woolen coat women,red,L,2004,2017-09-15,826,Very favorite clothes
980,ZKDS-J-5490-#cW4,2017-09-13,B,2017 Autumn New Women's Cotton Clothing,red,M,112,2017-09-16,219,The clothes are small
98,FKQB-I-2564-#dA5,2017-09-15,B,2017 autumn new shoes men,green,M,4345,2017-09-18,5473,The clothes are thick and it's better this winter.
150,DMQY-K-6579-#eS6,2017-09-21,A,2017 autumn new underwear men,yellow,37,2840,2017-09-25,5831,This price is very cost effective
200,GKLW-l-2897-#wQ7,2017-09-22,A,2017 Autumn New Jeans Men,blue,39,5879,2017-09-25,7200,The clothes are very comfortable to wear
300,HWEC-L-2531-#xP8,2017-09-23,A,2017 autumn new shoes women,brown,M,403,2017-09-26,607,good
100,IQPD-M-3214-#yQ1,2017-09-24,B,2017 Autumn New Wide Leg Pants Women,black,M,3045,2017-09-27,5021,very good.
350,LPEC-N-4572-#zX2,2017-09-25,B,2017 Autumn New Underwear Women,red,M,239,2017-09-28,407,The seller's service is very good
110,NQAB-O-3768-#sM3,2017-09-26,B,2017 autumn new underwear women,red,S,6089,2017-09-29,7021,The color is very good 
210,HWNB-P-7879-#tN4,2017-09-27,B,2017 autumn new underwear women,red,L,3201,2017-09-30,4059,I like it very much and the quality is good.
230,JKHU-Q-8865-#uO5,2017-09-29,C,2017 Autumn New Clothes with Chiffon Shirt,black,M,2056,2017-10-02,3842,very good

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 门路下,导入环境变量。
  • source bigdata_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。

  1. 切回到 MRS 集群,单击“文件治理”,单击“导入数据”。
  2. OBS 门路:抉择下面创立好的 OBS 桶名,找到 product_info.txt 文件,单击“是”。
  3. HDFS 门路:抉择 /user/hive/warehouse/demo.db/product_info/,单击“是”。
  4. 单击“确定”,期待导入胜利,此时 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:

CREATE USER dbuser WITH CREATEDB PASSWORD "Bigdata@123";

(3)切换为新建的 dbuser 用户:
SET ROLE dbuser PASSWORD "Bigdata@123";
(4)创立新的 mydatabase 数据库:
CREATE DATABASE mydatabase;
(5)执行以下步骤切换为连贯新建的 mydatabase 数据库。

  1. 在 Data Studio 客户端的“对象浏览器”窗口,右键单击数据库连贯名称,在弹出菜单中单击“刷新”,刷新后就能够看到新建的数据库。
  2. 右键单击“mydatabase”数据库名称,在弹出菜单中单击“关上连贯”。
  3. 右键单击“mydatabase”数据库名称,在弹出菜单中单击“关上新的终端”,即可关上连贯到指定数据库的 SQL 命令窗口,前面的步骤,请全副在该命令窗口中执行。

(6)为 dbuser 用户授予创立内部服务器的权限:

GRANT ALL ON FOREIGN DATA WRAPPER hdfs_fdw TO dbuser;

其中 FOREIGN DATA WRAPPER 的名字只能是 hdfs_fdw,dbuser 为创立 SERVER 的用户名。

(7)执行以下命令赋予用户应用表面的权限。
ALTER USER dbuser USEFT;
(8)切换回 Postgres 零碎数据库,查问创立 MRS 数据源后零碎主动创立的内部服务器。
SELECT * FROM pg_foreign_server;
返回后果如:


                     srvname                      | srvowner | srvfdw | srvtype | srvversion | srvacl |                                                     srvoptions
--------------------------------------------------+----------+--------+---------+------------+--------+---------------------------------------------------------------------------------------------------------------------
 gsmpp_server                                     |       10 |  13673 |         |            |        |
 gsmpp_errorinfo_server                           |       10 |  13678 |         |            |        |
 hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca |    16476 |  13685 |         |            |        | {"address=192.168.1.245:9820,192.168.1.218:9820",hdfscfgpath=/MRS/8f79ada0-d998-4026-9020-80d6de2692ca,type=hdfs}
(3 rows)

(9)切换到 mydatabase 数据库,并切换到 dbuser 用户。
SET ROLE dbuser PASSWORD "Bigdata@123";
(10)创立内部服务器。
SERVER 名字、地址、配置门路放弃与 8 统一即可。

CREATE SERVER hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca FOREIGN DATA WRAPPER HDFS_FDW 
OPTIONS 
(
address '192.168.1.245:9820,192.168.1.218:9820',   //MRS 治理面的 Master 主备节点的内网 IP,可与 DWS 通信。hdfscfgpath '/MRS/8f79ada0-d998-4026-9020-80d6de2692ca',
type 'hdfs'
);

(11)查看内部服务器。

SELECT * FROM pg_foreign_server WHERE srvname='hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca';

返回后果如下所示,示意曾经创立胜利:


                     srvname                      | srvowner | srvfdw | srvtype | srvversion | srvacl |                                                     srvoptions
--------------------------------------------------+----------+--------+---------+------------+--------+---------------------------------------------------------------------------------------------------------------------
 hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca |    16476 |  13685 |         |            |        | {"address=192.168.1.245:9820,192.168.1.218:29820",hdfscfgpath=/MRS/8f79ada0-d998-4026-9020-80d6de2692ca,type=hdfs}
(1 row)

五、创立表面

1、获取 Hive 的 product_info_orc 的文件门路。

  1. 登录 MRS 治理控制台。
  2. 抉择“集群列表 > 现有集群”,单击要查看的集群名称,进入集群根本信息页面。
  3. 单击“文件治理”,抉择“HDFS 文件列表”。
  4. 进入您要导入到 GaussDB(DWS) 集群的数据的存储目录,并记录其门路。

图 1 在 MRS 上查看数据存储门路

2、创立表面。SERVER 名字填写 10 创立的内部服务器名称,foldername 填写 1 查到的门路。

DROP FOREIGN TABLE IF EXISTS foreign_product_info;
CREATE FOREIGN TABLE foreign_product_info
(
    product_price                integer        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    integer        ,
    product_comment_time         date           ,
    product_comment_num          integer        ,
    product_comment_content      varchar(200)                      
) SERVER hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca 
OPTIONS (
format 'orc', 
encoding 'utf8',
foldername '/user/hive/warehouse/demo.db/product_info_orc/'
) 
DISTRIBUTE BY ROUNDROBIN;

六、执行数据导入

1、创立本地指标表。

DROP TABLE IF EXISTS product_info;
CREATE TABLE product_info
(
    product_price                integer        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    integer        ,
    product_comment_time         date           ,
    product_comment_num          integer        ,
    product_comment_content      varchar(200)                   
) 
with (
orientation = column,
compression=middle
) 
DISTRIBUTE BY HASH (product_id);

2、从表面导入指标表。

INSERT INTO product_info SELECT * FROM foreign_product_info;

3、查问导入后果。

SELECT * FROM product_info;
那么,实际一下,教您疾速上手数据仓库服务~

详情请戳这里理解。

点击关注,第一工夫理解华为云陈腐技术~

正文完
 0