一. KDC上的操作
1. 登录KDC server,将Kerberos配置文件/etc/krb5.conf分发至KDW每个节点:
scp /etc/krb5.conf 10.0.5.58:/etc/
scp /etc/krb5.conf 10.0.5.146:/etc/
scp /etc/krb5.conf 10.0.5.239:/etc/
2. 创建KDW的principal
kadmin.local -q "addprinc -randkey [email protected]"
kadmin.local -q "xst -k /etc/security/keytabs/hawq.keytab [email protected]"
3. 将keytab文件分发至OushuDB Master节点
scp /etc/security/keytabs/hawq.keytab 10.0.5.58:/home/gpadmin/hawq.keytab
4. 外部HDFS集群,/etc/hadoop/conf/core-site.xml把这个entity改一下:
<property>
<name>hadoop.rpc.protection</name>
<value>authentication,privacy</value>
</property>
改成:
<value>authentication</value>
二. OushuDB上的操作
1. 登录OushuDB Master更改keytab文件的用户权限
chown gpadmin:gpadmin /home/gpadmin/hawq.keytab
更改keytab文件的用户权限
chmod 400 /home/gpadmin/hawq.keytab
2. 修改hawq-site.xml,添加如下内容
<property>
<name>enable_secure_filesystem</name>
<value>ON</value>
</property>
<property>
<name>krb_server_keyfile</name>
<value>/home/gpadmin/keys/hawq.keytab</value>
</property>
<!—如果principal配置的是postgres用户,那么不用添加,但是hdfs也要改成postgres权限
<property>
<name>krb_srvname</name>
<value>postgres</value>
</property>
3. 修改hdfs-client.xml,添加如下内容
<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property>
<property>
<name>hadoop.rpc.protection</name>
<value>authentication</value>
</property>
4. 分发至OushuDB各个节点
5. 将HDFS上OushuDB数据目录属主改为postgres用户
sudo -u hdfs hadoop fs -chown -R postgres:gpadmin /<dfs_url>
三. 验证
1. 创建外部表
CREATE EXTERNAL TABLE t_ext (a1 varchar) LOCATION ('hdfs://xxxx:8020/tmp/test') format 'csv';
2. 查询
select * from t_ext;
标签:HDFS,keytab,postgres,hawq,kerberos,etc,gpadmin,OushuDB From: https://blog.51cto.com/u_15334349/6041397