HDFS中集成了Kerberos安全认证情况下,GBase 8a集群节点部署Kerberos客户端后,即可以执行加载或导出Kerberos认证下的HDFS文件。
1、GBase集群安装Kerberos客户端
Kerberos客户端的安装与配置主要分为以下几个步骤:
- 在GBase 8a的所有集群节点上,安装Kerberos客户端安装包,再将Kerberos客户端配置文件/etc/krb5.conf由KDC服务器复制到所有集群节点上的/etc目录下;
- 将Kerberos认证密钥文件keytab复制到所有节点指定目录,coor节点目录为/opt/gcluster/config,data节点目录为/opt/gnode/config。
- 将HTTPS的CA根证书文件追加到所有节点的根证书文件中,其中CA根证书文件中包含一个或多个证书。coor节点根证书文件为:/opt/gcluster/config/ca-bundle.crt;data节点根证书文件为:/opt/gnode/config/ca-bundle.crt
2、加载/导出Kerberos认证下HDFS文件
HDFS中集成了Kerberos安全认证情况下,GBase
8a集群节点部署Kerberos客户端后,即可以执行加载或导出Kerberos认证下的HDFS文件。加载或导出操作需完成如下配置:
- 设置gbase_hdfs_auth_mode=kerberos,指定使用Kerberos认证方式连接HDFS。
- 设置
gbase_hdfs_protocol=http/https/rpc,指定使用HTTP/HTTPS/RPC协议连接HDFS。
- 设置gbase_hdfs_principal=“xxx”,指定kerberos认证主体。
- 设置gbase_hdfs_keytab=‘xxx’,指定keytab文件路径。
以上配置完成后,即可进行加载导出操作。
执行加载导出前的配置需要注意:
- HDFS的HTTP端口号默认为50070,HTTPS端口号默认为50470,RPC端口号默认为9000,三种协议的端口不同,在加载或导出SQL的URL中的端口需要与指定的协议一致。
- 使用HTTPS协议连接HDFS时,因为客户端需要使用CA根证书对HTTPS地址进行验证,所以在加载或导出SQL的URL中,指定的HDFS
NameNode的主机名(或地址)必须与CA签名的主机名(或地址)完全相同。- 当不指定gbase_hdfs_keytab参数值或指定的参数值为空字符串时,将使用gbase_hdfs_principal推定keytab文件名,此时应将keytab文件复制到config目录下,keytab文件的名称应与gbase_hdfs_principal参数值对应,请参考《GBase
8a MPP Cluster配置手册》。例如:set
gbase_hdfs_principal='gbase/namenode@HADOOP.COM’则config目录下keytab文件名应为:gbase_namenode.kt。- 由于hadoop和kerberos对dns解析依赖程度很高,需要dns支持正向(forward)和反向(reverse)查找,在kerberos认证环境中在加载和导出语句的URL中推荐使用主机名,而不建议使用IP地址。
3、GBase 集群安装Kerberos认证的影响
- 集群扩容影响
支持Kerberos认证的集群版本在执行扩容后,管理员需要执行Kerberos客户端安装与配置,手工完成Kerberos客户端环境部署。- 集群升级影响
从不支持kerberos认证的集群版本升级到支持Kerberos的集群版本,管理员需要执行Kerberos客户端安装与配置,手工完成Kerberos客户端环境部署。- 集群节点替换工具
集群节点替换工具在同步文件时,需要将/opt/gcluster/config或/opt/gnode/config下扩展名为.kt和.pem/.crt/.cer/.crl的文件同步到被替换节点。