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文件操作。
执行加载导出前的配置需要注意:
- 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地址。