HAWQ上安装PXF插件,并访问HDFS文件数据

article/2025/9/17 21:15:23

1、说明 HAWQ在github上的地址为:https://github.com/apache/hawq

在安装pxf插件之前,可以先查看一下基础软件对应的版本信息:在hawq目录下的pxf/gradle.properties文件中

因我在安装pxf之前,已经把hadoop及hawq安装完,在后期所需低版本的hdfs,需要重新指定低版本的路径(主要是jar包的路径)

使用的hadoop版本为2.9.0,hawq版本2.4,hbase版本1.4.3

2、下载源码

git clone https://github.com/apache/hawq.git

3、编译PXF

cd /hawq/pxf  #进入pxf源码路径中
make          #编译

在编译过程中,若有错误提示信息,将对应行的注释信息删除即可

4、安装PXF

mkdir -p /opt/pxf  #创建pxf的安装目录
export PXF_HOME=/opt/pxf #指定环境变量
make install #安装pxf到指定的目录/opt/pxf中

5、修改配置文件

1)修改pxf-env.sh

export LD_LIBRARY_PATH=/usr/local/hadoop-2.7.1/lib/native:${LD_LIBRARY_PATH  ---hadoop的lib/native存放目录
export PXF_LOGDIR=/opt/pxf/logs    ---pxf日志存放目录
export PXF_RUNDIR=/opt/pxf         ---pxf安装目录
export PXF_USER=${PXF_USER:-pxf    ---pxf所属用户
export PXF_PORT=${PXF_PORT:-51200         ---pxf端口号
export PXF_JVM_OPTS="-Xmx512M -Xss256K"   ---JVM_OPTS参数
export HADOOP_DISTRO=CUSTOM
export HADOOP_ROOT=/usr/local/hadoop-2.7.1    ---所需hadoop的版本路径

2)修改pxf-log4j.properties

log4j.appender.ROLLINGFILE.File=/opt/pxf/logs/pxf-service.log    ---/opt/pxf/logs/日志存储路径
建议,使用绝对路径,不要使用环境变量

3)修改pxf-private.classpath

# PXF Configuration
/opt/pxf/conf# PXF Libraries
/opt/pxf/lib/pxf-hbase.jar
/opt/pxf/lib/pxf-hdfs.jar
/opt/pxf/lib/pxf-hive.jar
/opt/pxf/lib/pxf-json.jar
/opt/pxf/lib/pxf-jdbc.jar
/opt/pxf/lib/pxf-ignite.jar# Hadoop/Hive/HBase configurations
/usr/local/hadoop-2.7.1/etc/hadoop
#/usr/local/hadoop/hive/conf
/usr/local/hbase/conf
/usr/local/hadoop-2.7.1/share/hadoop/common/hadoop-common-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/hadoop-auth-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/asm-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/avro-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/commons-cli-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/commons-codec-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/commons-collections-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/commons-configuration-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/commons-io-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/commons-lang-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/commons-logging-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/commons-compress-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/guava-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/htrace-core*.jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/jetty-*.jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/jersey-core-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/jersey-server-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/log4j-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/protobuf-java-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/slf4j-api-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/snappy-java-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/hdfs/hadoop-hdfs-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-client-core-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-client-common-*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/common/lib/gson-*[0-9].jar# Pick Jackson 1.9 jars from hdfs dir for HDP tar and from mapreduce1 for CDH tar
/usr/local/hadoop-2.7.1/share/hadoop/[hdfs|madreduce1]/lib/jackson-core-asl-1.9*[0-9].jar
/usr/local/hadoop-2.7.1/share/hadoop/[hdfs|madreduce1]/lib/jackson-mapper-asl-1.9*[0-9].jar# Hive Libraries# HBase Libraries
/usr/local/hbase/lib/hbase-client*.jar
/usr/local/hbase/lib/hbase-common*.jar
/usr/local/hbase/lib/hbase-protocol*.jar
/usr/local/hbase/lib/htrace-core*.jar
/usr/local/hbase/lib/netty*.jar
/usr/local/hbase/lib/zookeeper*.jar
/usr/local/hbase/lib/metrics-core*.jar

注意,要写上hadoop/hbase对应的绝对路径,因我没有安装hive,把对应hive的路径都注释掉了,不然后期会提示缺少对应jar或者路径错误等信息

4)将下图中的配置文件中的路径与上图的路径修改成一致

pxf-privatebigtop.classpath
pxf-privatehdp.classpath
pxf-privatephd.classpath
pxf-public.classpath

6、初始化PXF

cd /opt/pxf/bin #进入pxf的安装目录中
执行命令 pxf init

7、启动PXF

pxf start

8、访问HDFS文件数据

1)hadoop dfs -mkdir -p /data/pxf_examples    #创建HDFS文件目录
2)创建文本数据文件pxf_hdfs_simple.txt
echo 'Prague,Jan,101,4875.33
Rome,Mar,87,1557.39
Bangalore,May,317,8936.99
Beijing,Jul,411,11600.67' > /tmp/pxf_hdfs_simple.txt
3)将数据文件添加到hdfs
hadoop dfs -put /tmp/pxf_hdfs_simple.txt /data/pxf_examples/
4)查看存储在hdfs中的文件信息:
hadoop dfs -cat /data/pxf_examples/pxf_hdfs_simple.txt
5)使用HdfsTextSimple配置文件从pxf_hdfs_simple.txt中创建可查询的HAWQ外部表:
gpadmin=# CREATE EXTERNAL TABLE pxf_hdfs_textsimple(location text, month text, num_orders int, total_sales float8)LOCATION ('pxf://namenode:51200/data/pxf_examples/pxf_hdfs_simple.txt?PROFILE=HdfsTextSimple')FORMAT 'TEXT' (delimiter=E',');
6)查询
gpadmin=# SELECT * FROM pxf_hdfs_textsimple;


http://chatgpt.dhexx.cn/article/HjdijY4B.shtml

相关文章

HAWQ技术解析(五) —— 连接管理

服务器启动后,还要经过一系列配置,才能被客户端程序所连接。本篇说明如何配置客户端身份认证,HAWQ的权限管理机制,HAWQ最常用的命令行客户端工具psql及与mysql命令行常用命令类比,最后还将列举一些客户端连接HAWQ数据库…

HAWQ-V3: Dyadic Neural Network Quantization论文学习

论文链接 https://arxiv.org/abs/2011.10680 摘要 目前的低精度量化算法往往具有从浮点值到量化整数值的来回转换的隐藏代价。这种隐藏的成本限制了通过量化神经网络所实现的延迟改进。为了解决这个问题,我们提出了HAWQ-V3,一个新的混合精度纯整数量化框…

HAWQ取代传统数仓实践(一)——为什么选择HAWQ

一、HAWQ取代传统数仓实践(一)——为什么选择HAWQ 为了跟上所谓“大数据”技术的脚步,从两年前开始着手实践各种SQL-on-Hadoop技术,从最初的Hive,到SparkSQL,再到Impala,进行了一系列ETL、CDC、…

在centos 7.3上进行Apache HAWQ集群安装部署

一、前期准备工作 1、准备三台物理机,master(192.168.251.8),dataserver1(192.168.251.9),dataserver2(192.168.251.10); 2、目前最新版本是2.4.0, 官网下载地址&…

HAWQ

为了跟上所谓“大数据”技术的脚步,从两年前开始着手实践各种SQL-on-Hadoop技术,从最初的Hive,到SparkSQL,再到Impala,进行了一系列ETL、CDC、多维数据仓库、OLAP的实验。作为一名从业20年以上的DBA,从数据…

HAWQ技术解析(三) —— 基本架构

HAWQ是一个Hadoop原生的SQL查询引擎,它结合了MPP数据库的关键技术和Hadoop的可扩展性。HAWQ在原生的HDFS上读写数据,MPP架构使HAWQ表现出超越其它SQL on Hadoop解决方案的查询性能,Hadoop又为HAWQ提供了传统数据库所不具备的线性扩展能力。 一…

HAWQ技术解析(十三) —— 资源管理

一、HAWQ如何管理资源 HAWQ使用多种机制管理CPU、内存、I/O、文件句柄等系统资源,包括全局资源管理、资源队列、强制资源使用限额等。 1. 全局资源管理 Hadoop通常使用YARN全局管理资源。YARN是一个通用的资源管理框架,为MapReduce作业或其…

HAWQ个人学习笔记(一)——HAWQ介绍

一、什么是HAWQ? HAWQ是Hadoop原生SQL查询引擎,针对分析性的应用。它具有大规模并行处理很多传统数据库以及其他数据库没有的特性及功能,结合了MMP数据库的关键技术优势和Hadoop的可扩展性和便利性。读写依赖于HDFS。 注:Hadoop…

全面讲解光纤、光模块、光纤交换机、光模块组网设计与案例

光纤组网已是当今建筑智能化弱电行业里一种常见的组网方式,组建远距离无线、监控网络时,往往需要使用光纤进行连接通信,使用光纤收发器是经济适用型做法,尤其是在室外的使用。其实光纤收发器不仅可以成对使用,还可以配…

400G光模块的相关知识

现在的高速光模块市场慢慢从100G向400G转移,未来400G必定是主流的高速光模块,目前这个阶段占领主流的还是100G,之前100G的相关知识已经讲述过了,400G与100G的传输速率由各种因素导致,我们讲讲400G与100G的信号传输。 4…

QSFP28-100G-LR4光模块有什么特点及优势?

100G以太网的迅速发展给100G光模块带来了巨大的市场需求,在众多100G光模块中,QSFP28光模块以其较小的尺寸和低功耗的特点成为最受欢迎的光模块。下面易天光通信(ETU-LINK)将从定义,工作原理,应用场景和常见…

DWDM光模块和CWDM光模块的区别

DWDM光模块和CWDM光模块的区别 近年来波分复用(WDM)技术受到网络用户的热烈欢迎,这是一种在单根光纤上复用不同波长激光的多个光载波信号的技术。下文将由亿创飞宇光通信重点介绍CWDM SFP光模块和DWDM SFP光模块。 DWDM光模块是什么?DWDM光模块有哪些主要优势? DWDM光模…

SC接口光模块相关知识

什么是SC接口光模块? SC接口光模块即接口类型为SC的光模块,必须搭配SC接口的跳线才能正常使用。SC光模块的接口的紧固方式是采用插拔销闩式,不须旋转,使用很方便。 SC光模块的分类 SC光模块相比LC光模块和MPO光模块…

全面解析光模块的应用场景

光模块主要应用于数据通信领域,它的功能是实现光电信号的相互转化。因为大数据、区块链、云计算、物联网、人工智能、5G的兴起,使得数据流量迅猛增长,数据中心以及移动通信的光互连成为了光通信行业的研究热点。接下来,易天光通信…

单波100G光模块与4路100G光模块相比,优势有哪些?

目前市场上大多数的100G光模块都是采用4路25Gb/s并行或者波分复用进行传输的,比如100G SR4、100G PSM4、100G LR4、100G CWDM4光模块等,为了降低成本以及更好的传输效率,业界提出了100G single-lambda规范,这个规范是指使用PAM4光…

光模块-寿命分析

光模块结构分类基本指标光模块的使用寿命光模块的三种失效率预计方法基本概念失效率预计 可靠性分析可靠性试验加速寿命试验方法阿伦尼兹(Arrhenius)模型逆幂律模型单应力的艾林(Eyring)模型 光模块加速寿命试验分析方法研究 光模块 光模块是进行光电和电光转换的光电子器件。…

5G通信光模块是什么?5G通信光模块的发展方向如何?

随着移动通信行业的迅猛发展,目前5G已经成为全球关注的超级热门话题,与2G、3G、4G相比,未来光纤通信行业5G地位不容小觑,在5G网络时代,不管什么样的5G承载方案都离不开5G通信光模块,那么5G通信光模块是什么…

100G多模光模块介绍及应用

随着光通信市场对数据传输速率的要求越来越高,更高速率的光模块也随之诞生。与10G、40G的波分传输系统相比,100G光传输实现了偏振复用相位调制技术、数字相干接收技术第三代超强纠错编码技术等一系列重大改革,满足了用户与时俱进的需求。本期…

linux 光功率 模块_【光电通信】10G 光模块消光比补偿方法

今日光电 有人说,20世纪是电的世纪,21世纪是光的世纪;知光解电,再小的个体都可以被赋能。欢迎来到今日光电! ----与智者为伍 为创新赋能---- 0. 引言 随着光纤到户、4G 业务的高速发展,光通信行业对高速光模块的需求也越来越大,这也对光模块厂商产能提出了新的挑…

精品文章!精讲光模块的方方面面,收藏!

光纤: 光纤作为光通信的传播媒介,分为多模光纤和单模光纤。 多模光纤(橘红色)的纤芯直径为 50um~62.5um,包层外直径 125um,适用于短距离传输( 2KM-5KM);单模光纤(黄色&…