为PXF安装和配置Hadoop客户端
您使用PXF连接器访问外部数据源。从以下来源读取外部数据时,PXF需要在每个Greenplum数据库段主机上安装客户端:
- hadoop
- hive
- hbase
PXF要求必须安装Hadoop客户端。如果需要访问hive、hbase数据的时候才需要安装hive、hbase客户端。
适用于PXF的兼容Hadoop,Hive和HBase客户端包括Cloudera,Hortonworks数据平台和通用Apache发行版。
本主题介绍如何为PXF安装和配置Hadoop,Hive和HBase客户端,通过rpm包的方式进行安装。当您通过RPM安装这些客户端时,PXF会自动检测您的Hadoop发行版和可选的Hive和HBase安装,并相应地设置某些配置和类路径。
如果您的Hadoop,Hive和HBase安装是自定义或tarball分发,请参阅使用自定义客户端安装获取说明。
环境准备
在为PXF设置Hadoop,Hive和HBase客户端之前,请确保您具有:
- scp 访问Hadoop集群中运行HDFS,Hive和HBase服务的主机。
- 超级用户权限,用于yum在每个Greenplum数据库段主机上添加存储库文件和安装RPM包。
- 在每个Greenplum数据库段主机上访问或以超级用户身份安装Java版本1.7或1.8。
注意:如果您计划访问存储在Cloudera Hadoop集群中的JSON格式数据,则PXF需要Cloudera 5.8或更高版本的Hadoop发行版。
操作流程
执行以下过程,在Greenplum Database集群中的每个段主机上安装和配置PXF的相应客户端。尽可能的使用gpssh实现在多个主机上运行相同的命令。
1、登录Greenplum Database主节点并设置环境:
$ ssh gpadmin@<gpmaster>
gpadmin@gpmaster$ . /usr/local/greenplum-db/greenplum_path.sh
2、创建一个文本文件,列出您的Greenplum数据库所有的segment主机名称,每行一个主机名。确保文件中没有空行或多余空格。例如,名为的文件seghostfile可能包括:
seghost1
seghost2
seghost3
3、如果未安装jdk,请在每个Greenplum数据库段主机上安装jdk。例如:
gpadmin@gpmaster$ gpssh -e -v -f seghostfile sudo yum -y install java-1.8.0-openjdk-1.8.0*
4、确定Java安装目录。更新每个segment主机上的gpadmin用户.bash_profile文件,以包含此$JAVA_HOME设置(如果尚未存在)。例如:
gpadmin@gpmaster$ gpssh -e -v -f seghostfile "echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64/jre' >> /home/gpadmin/.bash_profile"
5、在每个segment主机设置hadoop安装包的yum源。
a.下载Hadoop发行版的.repo文件。例如,一下是各个发行版本的.repo的文件,系统为rhel 6:
对于Cloudera发行版:
gpadmin@gpmaster$ wget https://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/cloudera-cdh5.repo
对于Hortonworks Data Platform发行版:
gpadmin@gpmaster$ wget http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.6.2.0/hdp.repo
b.将.repo文件复制到每个Greenplum数据库segment主机。例如:
gpadmin@gpmaster$ gpscp -v -f seghostfile <hadoop-dist>.repo =:/etc/yum.repos.d
在.repo文件到位后,您可以使用该yum实用程序来安装客户端RPM软件包。
6、在每个Greenplum数据库segment主机上安装Hadoop客户端。例如:
gpadmin@gpmaster$ gpssh -e -v -f seghostfile sudo yum -y install hadoop-client
7、如果您计划使用PXF Hive连接器访问Hive表数据,请在每个Greenplum数据库段主机上安装Hive客户端。例如:
gpadmin@gpmaster$ gpssh -e -v -f seghostfile sudo yum -y install hive
8、如果您计划使用PXF HBase连接器访问HBase表数据,请在每个Greenplum数据库段主机上安装HBase客户端。例如:
gpadmin@gpmaster$ gpssh -e -v -f seghostfile sudo yum -y install hbase
您已在Greenplum数据库群集中的每个segment主机上安装了所需的客户端软件包。将相关的HDFS,Hive和HBase配置从Hadoop集群复制到每个Greenplum数据库segment主机。您将使用该gpscp实用程序将文件复制到多个主机。
客户端配置
1、Hadoop
core-site.xml配置文件fs.defaultFS属性值标识HDFS NameNode URI。PXF需要此信息才能访问您的Hadoop集群。示例fs.defaultFS设置如下:
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode.domain:8020</value>
</property>
PXF需要来自core-site.xml其他Hadoop配置文件的信息。将这些文件从Hadoop集群复制到每个Greenplum数据库segment主机。
a.副本core-site.xml,hdfs-site.xml以及mapred-site.xmlHadoop配置文件从Hadoop集群的NameNode主机到当前主机。例如:
gpadmin@gpmaster$ scp hdfsuser@namenode:/etc/hadoop/conf/core-site.xml .
gpadmin@gpmaster$ scp hdfsuser@namenode:/etc/hadoop/conf/hdfs-site.xml .
gpadmin@gpmaster$ scp hdfsuser@namenode:/etc/hadoop/conf/mapred-site.xml .
接下来,将这些Hadoop配置文件复制到每个Greenplum数据库segment主机。例如:
gpadmin@gpmaster$ gpscp -v -f seghostfile core-site.xml =:/etc/hadoop/conf/core-site.xml
gpadmin@gpmaster$ gpscp -v -f seghostfile hdfs-site.xml =:/etc/hadoop/conf/hdfs-site.xml
gpadmin@gpmaster$ gpscp -v -f seghostfile mapred-site.xml =:/etc/hadoop/conf/mapred-site.xml
2、Hive
hive-site.xml配置文件hive.metastore.uris属性值标识Hive Metastore URI。PXF需要此信息才能访问Hive服务。示例hive.metastore.uris设置如下:
<property>
<name>hive.metastore.uris</name>
<value>thrift://metastorehost.domain:9083</value>
</property>
如果您计划使用PXF Hive连接器访问Hive表数据,请将Hive配置复制到每个Greenplum数据库segment主机。
a.将hive-site.xml配置文件从运行Hive服务的主机之一复制到当前主机。例如:
gpadmin@gpmaster$ scp hiveuser@hivehost:/etc/hive/conf/hive-site.xml .
b.接下来,将hive-site.xml配置文件复制到每个Greenplum数据库segment主机。例如:
gpadmin@gpmaster$ gpscp -v -f seghostfile hive-site.xml =:/etc/hive/conf/hive-site.xml
3、HBase
hbase-site.xml配置文件hbase.rootdir属性值标识HBase数据目录的位置。PXF需要此信息才能访问HBase服务。示例hbase.rootdir设置如下:
<property>
<name>hbase.rootdir</name>
<value>hdfs://hbasehost.domain:8020/apps/hbase/data</value>
</property>
如果计划使用PXF HBase连接器访问HBase表数据,请将HBase配置复制到每个Greenplum数据库segment主机。
a.将hbase-site.xml配置文件从运行HBase服务的主机之一复制到当前主机。例如:
gpadmin@gpmaster$ scp hbaseuser@hbasehost:/etc/hive/conf/hbase-site.xml .
b.接下来,将hbase-site.xml配置文件复制到每个Greenplum数据库segment主机。例如:
gpadmin@gpmaster$ gpscp -v -f seghostfile hive-site.xml =:/etc/hbase/conf/hbase-site.xml
更新Hadoop配置
如果在PXF服务运行时更新Hadoop,Hive或HBase配置,则必须将更新的.xml文件复制到每个Greenplum数据库segment主机并重新启动PXF。
使用自定义客户端安装
如果您无法通过支持的发行版中的RPM安装Hadoop,Hive和HBase客户端,则可以进行自定义安装。
使用HADOOP_ROOT和HADOOP_DISTRO环境变量为PXF提供所需的hadoop客户端安装路径。如下所述,必须$GPHOME/pxf/conf/pxf-env.sh配置文件中或者是环境变量中设置该值。
如果必须从tarball安装Hadoop和可选的Hive和HBase客户端发行版:
- 您必须在Hadoop根目录的所有子目录的对等目录中安装Hadoop和可选的Hive和HBase客户端。这些客户端目录必须被简单地命名为hadoop,hive和hbase。
- 您必须在HADOOP_ROOT环境变量设置中标识Hadoop根目录的绝对路径。
- 该目录$HADOOP_ROOT/hadoop/share/hadoop/common/lib必须存在。
如果上述要求不适用于您的Hadoop发行版:
- 您必须将HADOOP_DISTRO环境变量设置为该值CUSTOM。
- 初始化PXF后,必须手动编辑该$GPHOME/pxf/conf/pxf-private.classpath文件以标识Hadoop,Hive和HBase JAR及配置文件的绝对路径。您必须在启动PXF之前编辑此文件。
注意:安装自定义客户端后,必须按照上述过程中的说明和配置复制Hadoop,Hive和HBase配置到greenplum 数据库的所有segment主机节点上。
参考网址:http://gpdb.docs.pivotal.io/580/pxf/client_instcfg.html