1. GBase 8a MPP Cluster 集群安装 Kerberos 客户端
Kerberos 客户端的安装与配置主要分为以下几个步骤:
- 在 GBase 8a MPP Cluster 的所有集群节点上,安装 Kerberos 客户端安装包,再将 Kerberos 客户端配置文件
/etc/krb5.conf 由 KDC 服务器复制到所有集群节点上的 /etc 目录下; - GBase 8a MPP Cluster 集群通过 kerberos 认证加载或者导出 HDFS 文件,要求 Kerberos 安装包的最低版本为 1.10;如检测到当前 Kerberos 版本低于1.10,会在 express.log 日志中打印
Kerberos version too old, require 1.10 or higher 信息; - 将 Kerberos 认证密钥文件 keytab 复制到所有节点指定目录,Coordinate 节点目录为
$GCLUSTER_BASE/config ,data 节点目录为 $GBASE_BASE/config ; - 将 HTTPS 的 CA 根证书文件追加到所有节点的根证书文件中,其中 CA 根证书文件中包含一个或多个证书。
Coordinate 节点根证书文件为:$GCLUSTER_BASE/config/ca-bundle.crt data 节点根证书文件为:$GBASE_BASE/config/ca-bundle.crt
2. 加载/导出 Kerberos 认证下 HDFS 文件
HDFS 中集成了 Kerberos 安全认证情况下,GBase 8a MPP Cluster 节点部署 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 参数值对应,例如: 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 客户端。
3. GBase 8a MPP Cluster 安装 Kerberos 认证的影响
- 集群扩容影响
支持 Kerberos 认证的集群版本在执行扩容后,管理员需要执行 Kerberos 客户端安装与配置,手工完成 Kerberos 客户端环境部署。 - 集群升级影响
从不支持 Kerberos 认证的集群版本到支持 Kerberos 认证的集群版本的升级,管理员需要执行 Kerberos 客户端安装与配置,手工完成 Kerberos 客户端环境部署。 - 集群节点替换工具
支持 kerberos 认证的集群版本的节点替换功能。集群节点替换工具在同步文件时,需要将 $GCLUSTER_BASE/config 或 $GBASE_BASE/config 下扩展名为 .kt 和 .pem / .crt / .cer / .crl 的文件同步到被替换节点。
|