• 沒有找到結果。

大数据融合分析时代,GaussDB(DWS)如需访问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 登录华为云控制台,选择“大数据 > MapReduce服务”,单击“购买集群”,选择

“自定义购买”,填写软件配置参数,单击“下一步”。

1-1 软件配置

参数项 取值

区域 华北-北京四

集群名称 mrs_01

集群版本 MRS 1.9.2(主推)

说明如果当前用户使用的MRS集群版本为1.6.x、1.7.x、1.8.x、1.9.x 2.0.x,本教程也同样支持。

集群类型 分析集群

步骤2 填写硬件配置参数,单击“下一步”。

1-2 硬件配置

参数项 取值

计费模式 按需计费

可用区 可用区2

虚拟私有云 vpc-01 子网 subnet-01

安全组 自动创建

弹性公网IP 10.x.x.x 企业项目 default

Master节点 打开“集群高可用”

分析Core节点 3 分析Task节点 0

步骤3 填写高级配置参数如下表,单击“立即购买”,等待约15分钟,集群创建成功。

1-3 高级配置

参数项 取值

标签 test01

委托 保持默认即可

告警 保持默认即可

规则名称 保持默认即可

主题名称 保持默认即可

参数项 取值 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控制台,单击“创建桶”,填写以下参数,单击“立即创建”。

1-4 桶参数

参数项 取值

区域 华北-北京四

数据冗余存储策略 单AZ存储 桶名称 mrs-datasource

默认存储类别 标准存储

桶策略 私有

默认加密 关闭

归档数据直读 关闭

企业项目 default

标签

-步骤3 等待桶创建好,单击桶名称,选择“对象 > 上传对象”,将product_info.txt上传至 OBS桶。

步骤4 切换回MRS控制台,单击创建好的MRS集群名称,进入“概览”,单击“IAM用户同 步”所在行的“同步”,等待约5分钟同步完成。

步骤5 回到MRS集群页面,单击“节点管理”,单击任意一台master节点,进入该节点页 面,切换到“弹性公网IP”,单击“绑定弹性公网IP”,勾选已有弹性IP并单击“确 定”,如果没有,请创建。记录此公网IP。

步骤6 下载客户端。

1. 回到MRS集群页面,单击集群名称进入“概览”,单击“前往Manager”,如果 提示绑定公网IP,请先绑定公网IP。

2. 输入MRS Manager的用户名admin和密码,密码为创建MRS集群时输入的admin 密码,本实践为Huawei@12345。

3. 登录成功后,选择“服务管理 > 下载客户端”,“客户端类型”选择“仅配置文 件”,“下载路径”选择“服务器端”。单击“确定”。

步骤7 确认主master节点。

1. 使用SSH工具以root用户登录以上节点,root密码为Huawei_12345,切换到omm 用户。

su - omm

2. 执行以下命令查询主master节点,回显信息中“HAActive”参数值为“active”

的节点为主master节点。

sh ${BIGDATA_HOME}/om-0.0.1/sbin/status-oms.sh

步骤8 使用root用户登录主master节点,并更新主管理节点的客户端配置。

cd /opt/client

sh refreshConfig.sh /opt/client 客户端配置文件压缩包完整路径 本例命令为:

sh refreshConfig.sh /opt/client /tmp/MRS-client/MRS_Services_Client.tar 步骤9 切换到omm用户,并进入Hive客户端所在目录。

su - omm cd /opt/client

步骤10 在Hive上创建存储类型为TEXTFILE的表product_info。

1. 在/opt/client路径下,导入环境变量。

source bigdata_env 2. 登录Hive客户端。

beeline

3. 依次执行以下SQL语句创建demo数据库及表product_info。 ) row format delimited fields terminated by ','

stored as TEXTFILE; ) row format delimited fields terminated by ','

stored as orc;

2. 将product_info表的数据插入到Hive ORC表product_info_orc中。

insert into product_info_orc select * from product_info;

3. 查询ORC表数据导入成功。

步骤2 切换到“MRS数据源”,单击“创建MRS数据源连接”。

步骤3 选择前序步骤创建名为的“mrs_01”数据源,用户名: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用户授予创建外部服务器的权限,8.1.1及以后版本,还需要授予使用public 模式的权限:

GRANT ALL ON FOREIGN DATA WRAPPER hdfs_fdw TO dbuser;

GRANT ALL ON SCHEMA public TO dbuser; //8.1.1及以后版本,普通用户对public模式无权限,需要赋权,

8.1.1之前版本不需要执行。

其中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:9820",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-1 在 MRS 上查看数据存储路径

步骤2 创建外表。 SERVER名字填写步骤10创建的外部服务器名称,foldername填写步骤1查 到的路径。

DROP FOREIGN TABLE IF EXISTS foreign_product_info;

CREATE FOREIGN TABLE foreign_product_info ( product_price integer , product_id char(30) , 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 , product_id char(30) , 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;

----结束