HDFS 中集成了 Kerberos 安全认证情况下,GBase 8a MPP Cluster 节点部署 Kerberos 客户端后,即可以执行加载或导出 Kerberos 认证下的 HDFS 文件。
1. 配置文件参数配置
- 设置
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 文件操作。
2. 注意事项
- 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
参数值对应,请参考配置文件章节。例如:set gbase_hdfs_principal='gbase/namenode@HADOOP.COM'
则config目录下keytab 文件名应为:gbase_namenode.kt
。 - 由于 Hadoop 和 Kerberos 对 DNS 解析依赖程度很高,需要 DNS 支持正向(forward)和反向(reverse)查找,在 Kerberos 认证环境中在加载和导出语句的 URL 中推荐使用主机名,而不建议使用 IP 地址。
- 多套带不同 kerberos 认证的 hadoop 集群导入导出时配置
– 多套 kerberos 配置文件合并(多个 kerberos server 的 krb5 文件合并放在/etc
目录下);
– Kerberos 相关的其他文件有多个就将多个都放到对应目录下,如多个keytab 放到对应config
目录下,多个 CA 证书也放到对应config
下;
– GBase 8a 集 群 导 入 导 出 hadoop 的 相 关 参 数 目 前 只 有gbase_hdfs_namenodes
支持写多套 hadoop 集群,其他参数只支持一套 hadoop 集群,所以 GBase 的 hadoop 参数通过 session 级参数动态配置,也可以用 url 的参数方式写在gbase_hdfs_namenodes
里;
– 由于 GBase 8a 是通过 api 访问 kdc,所以不需要使用 kinit 初始化 kerberos 客户端。