注意:HDFS可插拔存储外部表在kerberos环境下可以工作,需要OushuDB3.3.1.2以上版本
准备工作
安装部署好Secure HDFS
安装部署好MIT Kerberos KDC
同步KDC和OushuDB cluster的系统时间
开始部署
登录KDC server,将Kerberos配置文件/etc/krb5.conf分发至OushuDB每个节点
scp /etc/krb5.conf <hawq-node>:/etc/krb5.conf
为postgres用户创建Kerberos principal并生成一个keytab文件
kadmin.local -q "addprinc -randkey postgres@REALM"kadmin.local -q "xst -k /etc/security/keytabs/hawq.keytab postgres@REALM"
将keytab文件分发至OushuDB Master节点
scp /etc/security/keytabs/hawq.keytab <hawq-master>:/etc/security/keytabs/hawq.keytab
登录OushuDB Master,更改keytab文件的用户权限
chown gpadmin:gpadmin /etc/security/keytabs/hawq.keytabchmod 400 /etc/security/keytabs/hawq.keytab
修改$GPHOME/etc/hawq-site.xml,添加如下内容:
<property><name>enable_secure_filesystem</name><value>ON</value></property><property><name>krb_server_keyfile</name><value>/etc/security/keytabs/hawq.keytab</value></property>
修改$GPHOME/etc/hdfs-client.xml,去掉如下所示的KDC注释:
<!-- KDC
...
KDC -->
分发至OushuDB各个节点
将HDFS上OushuDB数据目录属主改为postgres用户
sudo -u hdfs hadoop fs -chown -R postgres:gpadmin /<dfs_url>