GaussDB(DWS) HDFS外表支持联邦

举报
ACBD 发表于 2021/09/29 09:37:19 2021/09/29
【摘要】 一、背景:       HDFS已支持联邦,现场HDFS切换成联邦模式,对应hdfs上数据目录及namenode地址发生变化导致原GaussDB(DWS)外表无法正常访问。客户通过重建server以及对应数据的目录,新增联邦配置文件,创建对应联邦namenode HDFS Server,新建外表,维护成本太高。       GaussDB(DWS)支持联邦后,通过指定多个router地址,访...

一、背景:

       HDFS已支持联邦,现场HDFS切换成联邦模式,对应hdfs上数据目录及namenode地址发生变化导致原GaussDB(DWS)外表无法正常访问。客户通过重建server以及对应数据的目录,新增联邦配置文件,创建对应联邦namenode HDFS Server,新建外表,维护成本太高。

       GaussDB(DWS)支持联邦后,通过指定多个router地址,访问随机访问router实例与多个nameservice读写数据,避免router单点故障;增加nameservice可以实现业务数据隔离,提升整个HDFS文件系统性能。

二、联邦外表读流程:

1)客户端调用Router提供的请求接口。
2)该Routerzookeeper服务查询该请求对应的正确的NN地址。
3Router得到正确的NN地址后,将请求转发到正确的NN上。

4)然后NN返回文件数据所在的DN地址,客户端与此DN进行消息通信(读/block文件数据)

其中Zookeeper存储每组nameservice上挂载表信息。Router组件主要负责读写过程中请求转发

三、挂载表配置(根据实际情况配置挂载表)

1、打开HDFS服务

2、点击管理NameService

3、点击“添加”

4、根据步骤添加NameService

注意:分配角色步骤,需要根据HDFS添加JournalNode实例数,并且添加一对NameNode对应需要添加一对Zkfc及若干JournalNode

一般安装JournalNode个数由HDFS集群规模决定:

  • 数据节点(DataNode)数为3-100时,JournalNode个数为3
  • 数据节点(DataNode)数为100-500时,JournalNode个数为5
  • 数据节点(DataNode)数为500-5000时,JournalNode个数为9

5、添加完NameService后,需要修改参数fs.defaultFS开启联邦模式,修改参数为hdfs://nsfed,保存后并重启HDFS集群后参数生效。

6、添加挂载表

四、联邦使用场景:

1、创建server

CREATE SERVER mounttb_diff_001

FOREIGN DATA WRAPPER HDFS_FDW

OPTIONS (type 'hdfs',

address '192.168.1.1: 5000, 192.168.1.2: 5000, 192.168.1.3:5000',

hdfscfgpath '/home/conf/',

fed 'rbf');

其中标红根据实际情况填写

address联邦rbf方式时填写routerip及端口,可以支持大于2router地址,此时需要与fed参数配合使用。使用联邦外表读写时,会随机访问指定的router地址。

hdfscfgpath存储HDFS远程读相关配置core-site.xmlelk-site.xmlhdfs.keytabhdfs-site.xmlkrb5.conf文件。

fed参数表示HDFS外表使用联邦rbf方式

2、创建联邦外表

create foreign table mounttb_diff_tb_001 (

c_customer_sk             integer               not null,

c_customer_id             char(16)              not null,   

c_current_cdemo_sk        integer                       ,    

c_current_hdemo_sk        integer                       ,    

c_current_addr_sk         integer                       ,    

c_first_shipto_date_sk    integer                       ,    

c_first_sales_date_sk     integer                       ,    

c_salutation              char(10)                      ,    

c_first_name              char(20)                      ,     

c_last_name               char(30)                      ,    

c_preferred_cust_flag     char(1)                       ,    

c_birth_day               integer                       ,    

c_birth_month             integer                       ,    

c_birth_year              integer                       ,    

c_birth_country           varchar(20)                   ,    

c_login                   char(13)                      ,    

c_email_address           char(50)                      ,    

c_last_review_date        char(10) ) SERVER mounttb_diff_001

OPTIONS(foldername '/nn2/orc_new/orc1/orc2/public.customer/',

format 'orc',

encoding 'utf8' )distribute by roundrobin;

注意:foldername使用挂载表配置全局路径对应的目录

3、查询外表

select c_salutation,count(1) from mounttb_diff_tb_001 where c_customer_id like 'AAAAAAAAD%' group by c_salutation order by 1;

想了解GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的PB级数仓黑科技,后台还可获取众多学习资料哦~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。