GreenPlum6使用PXF进行连接HDFS、HIVE


最近我们正在测试GP6.7的性能,尝试着使用PXF连接HDFS进行外部表获取,提供一个GreenPlum中文社区 PXF中文文档

环境配置

配置环境:GreenPlum 6.7 ; PXF 5.11 ; CDH 6.1 (hadoop 3.*,hive 2.*)

初始环境

由于我们拿到的手的服务上是已经安装好的GreenPlum6.7和PXF5.11,所以我们只需要配置PXF的环境即可,GP6服务器上需要安装hdfs和hive的客户端 参考这位大佬的安装步骤

准备文件

我们需要拷贝正式环境上CDH的的配置文件,CDH配置文件默认地址/etc/hive、/etc/hadoop

scp /ect/hive/conf/core-size.xml GP6_10://home/data/greenplum-pxf/servers/ #移至GP-PXF主节点上
scp /ect/hive/conf/hdfs-size.xml GP6_10://home/data/greenplum-pxf/servers/ #移至GP-PXF主节点上
scp /ect/hive/conf/hive-size.xml GP6_10://home/data/greenplum-pxf/servers/ #移至GP-PXF主节点上
scp /ect/hive/conf/mapred-size.xml GP6_10://home/data/greenplum-pxf/servers/ #移至GP-PXF主节点上

配置服务器文件

因为使用的scp进行文件移动的,所以在GP6的服务器上文件归属者是root用户,故我们需要在GP6上使用gpadmin用户进行文件拷贝到PXF服务节点下

ssh GP6_10 #链接gp6主节点
mkdir -p /home/data/greenplum-pxf/servers/cdh-prod #创建cdh服务器配置文件
cd 
cp /home/data/greenplum-pxf/servers/*.xml /cdh-prod/	#拷贝xml文件至PXF服务节点下
rm /home/data/greenplum-pxf/servers/*.xml	#删除root用户下的hadoop配置文件

在这里插入图片描述

修改PXF配置文件(pxf-env.sh)

由于配置PXF用户模拟默认打开的,所以我们需先关闭一下

vim pxf-env.sh
#修改以下语句,将用户模拟关闭
export PXF_USER_IMPERSONATION=false 

在这里插入图片描述

配置环境变量

vim /etc/profit

#GP6安装目录
export GP_HOME=/usr/local/greenplum-db-6.7.0
export PATH=$PATH:${GP_HOME}/bin
#PXF安装目录
export PXF_HOME=/usr/local/greenplum-db-6.7.0/pxf
export PATH=$PATH:${PXF_HOME}
#PXF配置文件
export PXF_CONF=/home/data/greenplum-pxf
export PATH=$PATH:${PXF_CONF}

在这里插入图片描述

PXF服务器配置文件分发、启动

切记运行PXF命令时须使用gpadmin用户

#pxf配置文件分发
$PXF_HOME/bin/pxf cluster sync
#查看pxf服务状态
$PXF_HOME/bin/pxf cluster status
#启动pxf服务状态
$PXF_HOME/bin/pxf cluster start
#停止pxf服务状态
$PXF_HOME/bin/pxf cluster stop

在这里插入图片描述

建表、查询、测试

建表语句就是hive的建表语句呗,各位大佬可以参考官方文档 读取Hive表数据

hive端,我使用的hue进行建表和插入数据的

#创建表
hive> CREATE TABLE sales_info (
	location string
	, month string
	,number_of_orders int
	, total_sales double
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS textfile;
#插入数据
hive> insert into sales_info values('Prague','Jan',101,4875.33);
hive> insert into sales_info values('Rome','Mar',87,1557.39);
hive> insert into sales_info values('Bangalore','May',317,8936.99);
hive> insert into sales_info values('Beijing','Jul',411,11600.67);
#查看数据
hive> SELECT * FROM sales_info;

注意:
STORED AS textfile 子句指示Hive以 Textfile (默认) 格式创建表。 Hive Textfile格式支持逗号、制表符和空格分隔的值, 以及用JSON表示的数据。
DELIMITED FIELDS TERMINATED BY 子句定义数据记录(行)中的字段分隔符。 sales_info 表字段分隔符是逗号(,)。

GP6客户端

#创建外部表
CREATE EXTERNAL TABLE salesinfo_hiveprofile(
	location text
	, month text
	, num_orders int
	, total_sales float8
) LOCATION ('pxf://default.sales_info?PROFILE=Hive&SERVER=cdh-prod')
  FORMAT 'custom' (FORMATTER='pxfwritable_import');

#查询外部表
select * from salesinfo_hiveprofile;
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值