配置用户代理
该文档包括一下内容
- 配置PXF用户模拟
- 配置Hadoop代理
- Hive用户模仿
- HBase用户模拟
PXF代表Greenplum Database最终用户访问Hadoop服务。默认情况下,PXF尝试使用登录到Greenplum数据库的Greenplum数据库用户帐户的标识访问数据源服务(HDFS,Hive,HBase),并使用PXF连接器配置文件执行操作。请记住,PXF 在访问Hadoop服务时仅使用用户的登录标识。例如,如果用户jane登入到Greenplum Database,然后执行SET ROLE或SET SESSION AUTHORIZATION来更改用户角色,则所有PXF请求仍使用该身份jane访问Hadoop服务。
使用默认的PXF配置,您必须配置每个Hadoop数据源(HDFS,Hive,HBase),以允许PXF进程所有者(通常gpadmin)充当模拟用户或组的代理。请参阅配置Hadoop代理,Hive用户模拟和HBase用户模拟。
作为替代方案,您可以禁用PXF用户模拟。禁用用户模拟后,PXF将作为PXF进程所有者(通常gpadmin)执行所有Hadoop服务请求。此行为与早期版本的PXF匹配,但它无法控制Hadoop中不同Greenplum数据库用户对Hadoop服务的访问。它要求gpadmin用户可以访问HDFS中的所有文件和目录,以及PXF外部表定义中引用的Hive和HBase中的所有表。有关禁用用户模拟的信息,请参阅配置PXF用户模拟。
配置PXF用户模拟
执行以下过程以在Greenplum数据库群集中打开或关闭PXF用户模拟。默认情况下启用用户模拟。
1、以管理用户身份登录Greenplum Database主节点并设置环境:
$ ssh gpadmin@<gpmaster>
gpadmin@gpmaster$ . /usr/local/greenplum-db/greenplum_path.sh
2、打开$GPHOME/pxf/conf/pxf-env.sh配置文件。例如:
gpadmin@gpmaster$ vi $GPHOME/pxf/conf/pxf-env.sh
3、在pxf-env.sh文件中找到PXF_USER_IMPERSONATION配置项。将值设置true为打开PXF用户模拟,或false将其关闭。例如:
PXF_USER_IMPERSONATION="true"
4、将更新的pxf-env.sh文件复制到每个Greenplum数据库segment主机。例如,该seghostfile文件包含Greenplum数据库群集中segment主机的列表,每行一个主机名称:
gpadmin@gpmaster$ gpscp -v -f seghostfile $GPHOME/pxf/conf/pxf-env.sh =:/usr/local/greenplum-db/pxf/conf/pxf-env.sh
5、在每个Greenplum数据库segment主机上重新启动PXF,以应用新设置。例如:
$ gpadmin@gpmaster$ gpssh -e -v -f seghostfile "/usr/local/greenplum-db/pxf/bin/pxf restart"
配置Hadoop代理
启用PXF用户个性化(默认设置)时,必须配置Hadoop core-site.xml配置文件以允许用户模拟PXF。跟着这些步骤:
1 、修改core-site.xml配置文件,或使用Ambari添加相关的配置
2、设置属性hadoop.proxyuser..hosts
表示允许代理请求的PXF主机名列表。替换为PXF的代理用户,通常为gpadmin。value则指定代理的主机,多个主机使用逗号隔开。例如:
<property>
<name>hadoop.proxyuser.gpadmin.hosts</name>
<value>pxfhost1,pxfhost2,pxfhost3</value>
</property>
2、设置属性hadoop.proxyuser..groups
以指定PXF可以模拟的HDFS组列表。您应该将此列表限制为仅需要从PXF访问HDFS数据的组。例如:
<property>
<name>hadoop.proxyuser.gpadmin.groups</name>
<value>group1,group2</value>
</property>
3、更改后core-site.xml,必须重新启动Hadoop才能使更改生效。
Hive用户模仿
PXF Hive连接器使用Hive MetaStore确定Hive表的HDFS位置,然后直接访问底层HDFS文件。Hive不需要特定的模拟配置,因为Hadoop代理配置core-site.xml也适用于以这种方式访问的Hive表。
HBase用户模拟
要使用户模拟使用HBase,必须AccessController在HBase配置中启用协处理器并重新启动群集。有关所需的配置设置,请参阅“Apache HBase参考指南”中的61.3简单用户访问操作的服务器端配置hbase-site.xml。