1. 程式人生 > >基於【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ資料倉庫04 —— 安裝HAWQ外掛PXF3.3.0.0

基於【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ資料倉庫04 —— 安裝HAWQ外掛PXF3.3.0.0

一、 安裝PXF3.3.0.0,這裡所安裝的pxf的包檔案都包含在apache-hawq-rpm-2.3.0.0-incubating.tar.gz裡面
下面步驟都是以root身份執行
這裡注意,pxf外掛要用到tomcat服務,必須使用安裝包裡面的7.0.62, 不能安裝或升級為 tomcat8,這會造成依賴的catalina.jar包 版本不匹配,以致pxf啟動!

安裝時由於pxf的包都是el6版本的,但是我用的centos7,所以rpm帶引數“--nodeps”以忽略RPM命令對依賴包的檢測。

cd /opt/gpadmin/hawq_rpm_packages

rpm -ivh  apache-tomcat-7.0
.62-el6.noarch.rpm rpm -ivh --nodeps pxf-service-3.3.0.0-1.el6.noarch.rpm rpm -ivh --nodeps pxf-hdfs-3.3.0.0-1.el6.noarch.rpm rpm -ivh --nodeps pxf-hive-3.3.0.0-1.el6.noarch.rpm rpm -ivh --nodeps pxf-hbase-3.3.0.0-1.el6.noarch.rpm rpm -ivh --nodeps pxf-jdbc-3.3.0.0-1.el6.noarch.rpm rpm -ivh --nodeps pxf-json-3.3
.0.0-1.el6.noarch.rpm rpm -ivh --nodeps pxf-3.3.0.0-1.el6.noarch.rpm

二、 配置PXF

1,由於hadoop為HDP版本,所以使用hdp相關的jar包配置

[[email protected] ~]cp  /etc/pxf/conf/pxf-privatehdp.classpath  /etc/pxf/conf/pxf-private.classpath
[[email protected] ~]cp  /etc/pxf/conf/pxf-profiles.xml   /etc/pxf/conf/pxf-profiles.default.xml

2,修改pxf目錄所有者:

[[email protected] ~] chown -R pxf:pxf /opt/pxf-3.3.0.0
[[email protected]-bd01 ~] chown -R pxf:pxf /tmp/logs

3,建立軟連線目錄:

[[email protected]-bd01 ~] ln -s /etc/pxf-3.3.0.0/conf /opt/pxf-3.3.0.0/conf
[[email protected]-bd01 ~] ln -s /usr/lib/pxf  /opt/pxf-3.3.0.0/lib

4,建立一個init過程需要的目錄和template檔案

[[email protected] ~] mkdir /opt/pxf-3.3.0.0/conf-templates
[[email protected]-bd01 ~] cp /opt/pxf/conf/pxf-privatehdp.classpath /opt/pxf/conf-templates/pxf-private-hdp.classpath.template

5,修改pxf-service檔案為pxf,因為init過程需要建立同名的目錄,同時需要修改init.d目錄中的連結:

[[email protected] ~] mv /opt/pxf/pxf-service  /opt/pxf/pxf
[[email protected]-bd01 ~] unlink /etc/init.d/pxf-service 
[[email protected]-bd01 ~] ln -s /opt/pxf/pxf   /etc/init.d/pxf-service

6,修改tomcat/conf目錄的許可權,同時在pxf目錄中建立連結

[[email protected] ~] chmod 755 -R /opt/apache-tomcat/conf/
[[email protected]-bd01 ~] ln -s /opt/apache-tomcat /opt/pxf-3.3.0.0/apache-tomcat

7,編輯/etc/pxf/conf/pxf-env.sh,修改 PARENT_SCRIPT_DIR和LD_LIBRARY_PATH的值

[[email protected] ~] vim /etc/pxf/conf/pxf-env.sh 
export PARENT_SCRIPT_DIR=/opt/pxf-3.3.0.0
export PXF_HOME=/opt/pxf-3.3.0.0 export LD_LIBRARY_PATH
=/usr/hdp/current/hadoop-client/lib/native:${LD_LIBRARY_PATH}

8,修改pxf指令碼檔案,設定PXF_HOME

[[email protected] ~] vim /opt/pxf-3.3.0.0/pxf
export PARENT_SCRIPT_DIR=/opt/pxf-3.3.0.0
export PXF_HOME=/opt/pxf-3.3.0.0

9,編輯/etc/pxf/conf/pxf-public.classpath,新增一系列的jar包

[[email protected] pxf-3.3.0.0]# vim /etc/pxf-3.3.0.0/conf/pxf-public.classpath
/usr/hdp/current/hadoop-client/lib/commons-beanutils-1.9.3.jar
/usr/hdp/current/hadoop-client/lib/commons-cli-1.2.jar
/usr/hdp/current/hadoop-client/lib/commons-codec-1.11.jar
/usr/hdp/current/hadoop-client/lib/commons-collections-3.2.2.jar
/usr/hdp/current/hadoop-client/lib/commons-compress-1.4.1.jar
/usr/hdp/current/hadoop-client/lib/commons-configuration2-2.1.1.jar
/usr/hdp/current/hadoop-client/lib/commons-io-2.5.jar
/usr/hdp/current/hadoop-client/lib/commons-lang-2.6.jar
/usr/hdp/current/hadoop-client/lib/commons-lang3-3.4.jar
/usr/hdp/current/hadoop-client/lib/commons-logging-1.1.3.jar
/usr/hdp/current/hadoop-client/lib/commons-math3-3.1.1.jar
/usr/hdp/current/hadoop-client/lib/commons-net-3.6.jar
/usr/hdp/current/hadoop-client/lib/jersey-core-1.19.jar
/usr/hdp/current/hadoop-client/lib/jersey-json-1.19.jar
/usr/hdp/current/hadoop-client/lib/jersey-server-1.19.jar
/usr/hdp/current/hadoop-client/lib/jersey-servlet-1.19.jar
/usr/hdp/current/hadoop-client/lib/jsr311-api-1.1.1.jar
/usr/hdp/current/hadoop-client/lib/woodstox-core-5.0.3.jar
/usr/hdp/current/hadoop-client/lib/stax2-api-3.1.4.jar
/usr/hdp/current/hadoop-client/lib/htrace-core4-4.1.0-incubating.jar
/usr/hdp/current/hadoop-client/lib/re2j-1.1.jar
/usr/hdp/3.0.0.0-1634/hbase/lib/atlas-hbase-plugin-impl/commons-configuration-1.10.jar
/usr/hdp/current/hadoop-hdfs-datanode/hadoop-hdfs-rbf.jar
/usr/hdp/current/hadoop-hdfs-datanode/hadoop-hdfs-nfs.jar
/usr/hdp/current/hadoop-hdfs-datanode/hadoop-hdfs-native-client.jar
/usr/hdp/current/hadoop-hdfs-datanode/hadoop-hdfs-httpfs.jar
/usr/hdp/current/hadoop-hdfs-datanode/hadoop-hdfs-client-3.1.0.3.0.0.0-1634.jar
/opt/pxf-3.3.0.0/lib/pxf-service-3.3.0.0.jar
/opt/pxf-3.3.0.0/lib/pxf-api-3.3.0.0.jar
:wq

 10,複製pxf-profiles.xml 為pxf-profiles-default.xml並編輯,新增profile配置

[[email protected] pxf-3.3.0.0]# cp /etc/pxf/conf/pxf-profiles.xml   /etc/pxf/conf/pxf-profiles-default.xml 
[[email protected]-bd05 pxf-3.3.0.0]# vim /etc/pxf/conf/pxf-profiles-default.xml 
<profiles>
  <profile>
        <name>HdfsTextSimple</name>
        <description>This profile is suitable for using when reading delimited single line records from plain text files
            on HDFS
        </description>
        <plugins>
            <fragmenter>org.apache.hawq.pxf.plugins.hdfs.HdfsDataFragmenter</fragmenter>
            <accessor>org.apache.hawq.pxf.plugins.hdfs.LineBreakAccessor</accessor>
            <resolver>org.apache.hawq.pxf.plugins.hdfs.StringPassResolver</resolver>
        </plugins>
    </profile>
    <profile>
        <name>HdfsTextMulti</name>
        <description>This profile is suitable for using when reading delimited single or multi line records (with quoted
            linefeeds) from plain text files on HDFS. It is not splittable (non parallel) and slower than HdfsTextSimple.
        </description>
        <plugins>
            <fragmenter>org.apache.hawq.pxf.plugins.hdfs.HdfsDataFragmenter</fragmenter>
            <accessor>org.apache.hawq.pxf.plugins.hdfs.QuotedLineBreakAccessor</accessor>
            <resolver>org.apache.hawq.pxf.plugins.hdfs.StringPassResolver</resolver>
        </plugins>
    </profile>
</profiles>

三、初始化pxf,必須使用pxf使用者

1,設定pxf的密碼

passwd pxf

2,初始化,需要使用使用者pxf

[[email protected] pxf]# source /etc/pxf/conf/pxf-env.sh
[[email protected] pxf]# sudo
-u pxf service pxf-service init


Generating /opt/pxf-3.3.0.0/conf/pxf-private.classpath file from /opt/pxf-3.3.0.0/conf-templates/pxf-private-hdp.classpath.template ...

cp /opt/pxf/pxf-service/webapps/pxf/WEB-INF/lib/*.jar  /opt/pxf/lib/

四、啟動PXF service

1,啟動:

sudo -u pxf service pxf-service start

Checking if tomcat is up and running...
tomcat not responding, re-trying after 1 second (attempt number 1)
Checking if PXF webapp is up and running...
PXF webapp is listening on port 51200

 2,測試:

使用pxf外掛訪問已經事先從oracle匯入到HDFS上的資料(使用了sqoop的--compress選項,是gz壓縮格式,但是HdfsTextSimple可以直接訪問),下面是建立hawq外部表的命令,注意路徑中的星號。

drop external table ext.yx_bw;
create external table ext.yx_bw (occur_time date, ......    ) 
location ('pxf://192.168.58.15:51200/var/data/ext/yx_bw/*?profile=hdfstextsimple') format 'text'(delimiter ',' null '');

**注意** ,此處的主機地址,我直接使用的是主機的地址,如果使用主機名稱則hawq訪問失敗,據我觀察應該是沒有正確轉換,一直沒能解決此問題,如果哪位大俠知道請一定不吝賜教,先謝過了!如果地址使用location ('pxf://bd05:51200/var/data/ext/yx_bw/*?profile=hdfstextsimple') ,外部表可以建立,但是訪問資料時顯示如下錯誤,且沒有詳細資訊,pxf服務的log也找不到訪問失敗的記錄!

epbd=> select * from ext.yx_bw;      
ERROR:  remote component error (0): (libchurl.c:897)

下面是系統中的/etc/hosts檔案和/etc/host.conf檔案,由於本叢集可以訪問外網,可以看到nslookup返回了錯誤地址,但是ping和curl訪問都是正確的。

[email protected] pg_log]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.58.11  ep-bd01 bd01
192.168.58.12  ep-bd02 bd02
192.168.58.13  ep-bd03 bd03
192.168.58.14  ep-bd04 bd04
192.168.58.15  ep-bd05 bd05
[[email protected] pg_log]# cat /etc/host.conf 
multi off
[[email protected]bd05 pg_log]# nslookup bd01
Server:         211.137.160.5
Address:        211.137.160.5#53

Non-authoritative answer:
Name:   bd01
Address: 211.137.170.246

[[email protected]-bd05 pg_log]# ping bd01    
PING ep-bd01 (192.168.58.11) 56(84) bytes of data.
64 bytes from ep-bd01 (192.168.58.11): icmp_seq=1 ttl=64 time=0.156 ms
64 bytes from ep-bd01 (192.168.58.11): icmp_seq=2 ttl=64 time=0.160 ms
^C
--- ep-bd01 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.156/0.158/0.160/0.002 ms
[[email protected]-bd05 pg_log]# curl http://bd01:51200/pxf/v0
Wrong version v0, supported version is v15
[roo[email protected] pg_log]#

五、可選操作:

1,修改/opt/pxf/pxf-service/conf/catalina.properties,修改 base.shutdown.port 

#base.shutdown.port=-1
base.shutdown.port=8005

2,修改/opt/pxf/pxf-service/conf/tomcat-users.xml,給使用者tomcat新增角色manager-gui ,以便可以在瀏覽器中管理webapps

[[email protected] ~] vim /opt/pxf/pxf-service/conf/tomcat-users.xml 
<role rolename="tomcat"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="tomcat,manager-gui"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>

相關推薦

基於CentOS-7+ Ambari 2.7.0 + HDP 3.0搭建HAWQ資料倉庫04 —— 安裝HAWQ外掛PXF3.3.0.0

一、 安裝PXF3.3.0.0,這裡所安裝的pxf的包檔案都包含在apache-hawq-rpm-2.3.0.0-incubating.tar.gz裡面下面步驟都是以root身份執行這裡注意,pxf外掛要用到tomcat服務,必須使用安裝包裡面的7.0.62, 不能安裝或升級為 tomcat8,這會造成依賴的

基於CentOS-7+ Ambari 2.7.0 + HDP 3.0搭建HAWQ資料倉庫03 —— 安裝HAWQ 2.3.0.0

一、 HAWQ2.3.0環境準備【全部主機節點】: 1, vim /etc/sysctl.conf,編輯如下內容: kernel.shmmax= 1000000000 kernel.shmmni= 4096 kernel.shmall= 4000000000 kernel.sem= 250 512000

基於CentOS-7+ Ambari 2.7.0 + HDP 3.0搭建HAWQ數據倉庫之一 —— MariaDB 安裝配置

ola http iad com grant stop drive 數據庫 commit 一、安裝並使用MariaDB作為Ambari、Hive、Hue的存儲數據庫。 yum install mariadb-server mariadb 啟動、查看狀態,檢查mariad

基於CentOS-7+ Ambari 2.7.0 + HDP 3.0HAWQ資料倉庫 使用之 gpfdist協議

一、HAWQ基本安裝自帶gpfdist協議 gpfdist是HAWQ支援的外部表訪問協議之一,這是hawq自帶的一個簡單的整合http服務命令。 在我的前述安裝hawq之後,gpfdist命令位於hawq的bin目錄之中。/opt/gpadmin/apache-hawq/bin/gpfdist gpfdist

基於CentOS-7+ Ambari 2.7.0 + HDP 3.0搭建HAWQ資料倉庫02 ——使用ambari-server安裝HDP

本文記錄使用ambari-server安裝HDP的過程,對比於使用cloudera-manager安裝CDH,不得不說ambari的易用性差的比較多~_~,需要使用者介入的過程較多,或者說可定製性更高。 首先、安裝之前,在每個主機節點上執行下面命令,已清除快取,避免一些repo原因導致的安裝失敗。 yum

基於CentOS-7+ Ambari 2.7.0 + HDP 3.0搭建HAWQ資料倉庫01 —— 準備環境,搭建本地倉庫安裝ambari

一、叢集軟硬體環境準備: 作業系統:  centos 7 x86_64.1804 Ambari版本:2.7.0 HDP版本:3.0.0 HAWQ版本:2.3.05臺PC作為工作站: ep-bd01 ep-bd02 ep-bd03 ep-bd04 ep-bd05

基於CentOS-7+ Ambari 2.7.0 + HDP 3.0搭建HAWQ資料倉庫——安裝配置OPEN-SSH,設定主機節點之間免密互訪

配置root使用者免密互訪(為了方便,各臺系統中使用統一的證書檔案)一、安裝Open-SSH 1,查詢系統中是否安裝了openssh [[email protected]]# opm -qa |grep ssh 如已安裝,則列出下面類似的軟體包 openssh-server-7.4p1-16.

基於CentOS-7+ Ambari 2.7.0 + HDP 3.0搭建HAWQ資料倉庫——作業系統配置,安裝必備軟體

注意未經說明,所有本文中所有操作都預設需要作為root使用者進行操作。 一、安裝zmodem,用於遠端上傳下載檔案,安裝gedit,方便重定向到遠端windows上編輯檔案(通過xlanuch) [[email protected]]# yum install lrzsz -y [[email

基於CentOS-7+ Ambari 2.7.0 + HDP 3.0搭建HAWQ資料倉庫——安裝配置NTP服務,保證叢集時間保持同步

一、所有節點上使用yum安裝配置NTP服務yum install ntp -y 二、選定一臺節點作為NTP server, 192.168.58.11修改/etc/ntp.conf vim /etc/ntp.conf 1,註釋掉restrict 127.0.0.1 ,修改為: restrict 192

基於CentOS-7+ Ambari 2.7.0 + HDP 3.0搭建HAWQ資料倉庫 —— MariaDB 安裝配置

一、安裝並使用MariaDB作為Ambari、Hive、Hue的儲存資料庫。 yum install mariadb-server mariadb 啟動、檢視狀態,檢查mariadb是否成功安裝 systemctl start mariadb systemctl status mariadb 二、配置

CentOS-7+ Ambari 2.7.0 + HDP 3.0+HAWQ2.3.00遭遇問題及解決記錄

一、zookeeper超出最大連線限制:ambari server檢測到critical錯誤, zookeeper server on ep-bd01:2181 連線被積極拒絕,翻看主機上zookeeper的日誌 tail -n200 zookeeper-zookeeper-server-ep-bd01.ou

Centos升級Python 2.7安裝pip、ipython

info bin ssl ber .cn update .com space rap https://www.cnblogs.com/technologylife/p/6242115.html Centos系統一般默認就安裝有Python2.6.6版本,不少軟件需要2.7以

基於ambari 2.4.1 HDP-2.5.0 構建安全的hive資料庫

基於ambari 2.4.1 HDP-2.5.0 構建安全的hive資料庫 基本條件: 1. 利用ambari 啟用kerberos 基本原理: hadoop 代理機制:hadoop 可以使用"超級"使用者,偽裝為其他使用者提交程式。且可以通過配置對被偽裝的使用者限定使用

ambari 2.7 編譯與安裝

1.環境準備 安裝好JDK,maven,ant,postgresql,以及nodejs,npm和bower。參見博主的相關部落格。注意部分元件的下載需要科學上網。 安裝rpm,rpm-build,git sudo yum install rpm sudo

編譯 ambari 2.7.3

com 這一 options .tar.gz 分享圖片 popd max test oca 官方給的教程比較簡單,需要事先安裝的工具也是這裏列一點,那裏列一點。在此記錄一下編譯要點(在 centos 7 下)。 1. 事先需要安裝的工具 yum install

File Cabinet Pro for Mac(Mac選單欄檔案管理器) V6.7.1(2.7.9)破解版

File Cabinet Pro for Mac是Mac平臺上一款非常簡潔的Mac選單欄檔案管理器,File Cabinet Pro Mac破解版不僅僅是一個選單欄檔案管理軟體,它還內建了文字編輯器、pdf檢視器、影象檢視器和媒體播放器等小功能,功能非常的強大。 File Cabinet Pro

python爬取網頁包含動態js資訊(3.7 +,2.7+)

post_param = {'action': '', 'start': '0', 'limit': '1'} return_data =

CentOS 下HBase1.2.6 單機和 偽分散式平臺搭建

前篇文章搭建了 hadoop hbase 1.2.6 安裝 一 hbase 安裝 1. 下載解壓 解壓到 /usr/hbase/ 2. 修改環境 命令 : vi /etc/profile 新增 export HBASE_HOME=/usr/hbase/hbase-1

ubuntu16.04安裝Nvidia顯示卡驅動,CUDA8.0,cuDNN6,TensorFlow-gpu

Welcome To My Blog 實驗室學姐讓跑一個深度學習模型的程式,需要配置環境,查閱各種資料後安裝成功,記錄一下安裝過程,確實挺刺激,也算是開啟了自己的深度學習之旅了. 安裝Nvidia顯示卡驅動 1. 下載驅動 根據自己的系統和顯示卡型號直接在NVIDIA官網

appium+Python基於Mac搭建環境第一步:安裝node.js6.11.3 mac版本

appium+Python基於Mac搭建環境 歡迎使用Markdown編輯器 你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁。如果你想學習如何使用Markdown編輯器, 可以仔細閱讀這篇文章,瞭解一下Markdown的基本語法知識。 新的改變 我們對Mar