“G”术时刻:从hadoop数据迁移至南大通用GBase 8a数据库详解

51 阅读3分钟

近期某项目上完成了hadoop迁移数据到南大通用GBase 8a数据库,下面为迁移详细实施过程,以供参考。

1迁移实施方案

1.1.Hadoop集群提供材料

    GBase 8a MPP Cluster 接入HDFS数据,需要hadoop集群提供下面内容:  
     1)提供 hadoop集群namenode、datanode的主机名和ip映射关系。  
     2)提供kerberos客户端配置文件krb5.conf。  
     3)提供 kerberos 认证密钥文件kt, 及 principal名称。  
     4)需开通的端口(RPC协议):  
            a)开通hadoop集群所有节点 访问gbase集群所有管理节点的端口(默认5258)。  
            b)开通hadoop集群所有节点 访问gbase集群所有数据节点的端口(默认5050)。  
            c)开通gbase集群所有节点)访问 hadoop集群所有节点的端口(如25000)。  
            d)开通gbase集群所有节点到kdc服务器对应端口范围,如27230-27232(在krb5.conf中可以查到)。  
5)提供所有迁移表的表结构。

2.GBase集群实施方案

2.1.创建表结构

 根据提供的表结构,在对应的database下创建迁移的表,建议创建为hash分布表。

2.2.配置/etc/hosts

由于 Hadoop 和 Kerberos 对 DNS 解析依赖程度很高, 需要 DNS 支持正向( forward) 和反向( reverse) 查找, 在 Kerberos 认证环境中在加载和导出语句的 URL 中推荐使用主机名, 而不建议使用 IP 地址。
因此需要在Gbase 集群的所有节点的/etc/hosts中,配置hadoop集群所有节点的主机名和IP映射关系。

2.3.安装kerberos客户端

在Gbase 集群的所有节点的安装kerberos客户端,具体安装要求如下:
#在root账户下执行
yum install   libkadm5 krb5-libs krb5-devel  krb5-workstation

2.4.分发票据信息

需要修改票据信息yitong_guest.kt属主,并分发到集群节点的config下。
修改此文件属主为gbase权限为644()
#在root账户下执行
chown gbase: gbase biao_guest.kt
chmod 644 biao_guest.kt

分发到集群的config路径下:
#在gbase账户下执行
cpush coor:biao_guest.kt /gbase/gcluster/config
cpush data:biao_guest.kt /gbase/gnode/config

2.5. 分发KDC配置文件

 把KDC配置文件分发到集群所有节点的/etc/下:

#在root账户下执行
cpush all: krb5.cnf /etc/

2.6.设置集群参数

登录到数据库中,执行下面命令:  
#在gbase账户下执行
gccli -uxxx -pxxx
gbase> 
set global gbase_hdfs_auth_mode=kerberos ;
set globl gbase_hdfs_protocol=RPC’;
set globl gbase_hdfs_port=25000’;
Set global gbase_hdfs_principal =’biao_guest@HADOOP.COM’;
Set global gbase_hdfs_namenodes=’namenode1,namenode2’;

#管理节点:
Set  globalgbase_hdfs_kt  =’/gbase/gcluster/config/biao_guest.kt’;

数据节点:

gncli -uxxx -pxxx  
Set global gbase_hdfs_kt  =’/gbase/gnode/config/biao_guest.kt’;

注意:在加载验证成功后,需要把上述参数配置在config文件中,以免集群节点服务重启后失效。

2.7.票据身份认证

管理节点上执行:
kinit -kt /gbase/gcluster/config/biao_guest.kt biao_guest@HADOOP.COM   
数据节点上执行:
kinit -kt /gbase/gnode/config/biao_guest.kt biao_guest@HADOOP.COM

2.8.验证加载

在数据库中创建测试表,然后执行下面测试语句:

#在gbase账户下执行
gccli -uxxx -pxxx
gbase>load data infile ‘hdp://biao_guest@namenode1:25000//user/biao_guest/gbasetest20250313.txt’ into table all_judicial_inquiry_new_2020 data_format 3 fields terminated by ‘|@|;

3.Gbase集群安装 Kerberos 认证的影响 

3.1.集群扩容影响

在执行扩容后, 管理员需要执行 Kerberos 客户端安装与配置, 手工完成 Kerberos 客户端环境部署。 

3.2.集群升级影响 

从不支持 Kerberos 认证的集群版本到支持 Kerberos 认证的集群版本的升级, 管理员
需要执行 Kerberos 客户端安装与配置, 手工完成 Kerberos 客户端环境部署。

3.3.节点替换工具

  支持 kerberos 认证的集群版本的节点替换功能。 集群节点替换工具在同步文件时, 需要将GCLUSTERBASE/configGCLUSTER_BASE/config 或GBASE_BASE/config 下扩展名为.kt的文件同步到被替换节点。