當前位置:編程學習大全網 - 熱門推薦 - Greenplum pxf 連接hadoop

Greenplum pxf 連接hadoop

最近在搞greenplum連接hadoop,采用pxf插件。hadoop集群是kerberos認證的。

首先添加壹下hadoop的參數:

$ gpconfig -c gp_hadoop_target_version -v"hdp2"

$ gpconfig -c gp_hadoop_home -v"/usr/lib/hadoop"

具體的版本參數參照官網,hadoop的home自己設定

然後配置java環境目錄,每個segment節點都配置壹下。這裏最好每臺機器都check壹下。

遇到的問題:No class found壹類的問題。

在greenplum-db/lib/hadoop目錄下的hadoop_env.sh 文件缺少應該加載的類的配置。

在hadoop_env.sh文件中,JAVA_LIBRARY_PATH之前加上

if [ -d "/usr/hdp/2.6.1.0-129/hadoop/client" ]; then

for f in /usr/hdp/2.6.1.0-129/hadoop/client/*.jar; do

? CLASSPATH=${CLASSPATH}:$f;

done

fi

其中/usr/hdp/2.6.1.0-129/是我的hadoop安裝目錄。

指定PXF_CONF=/usr/local/greenplum-db/pxf/conf,也可是其他目錄。根據官方指導,

在這個目錄下的servers/default?

加入hadoop經典的四個配置文件:

hdfs-site.xml,core-site.xml,yarn-site.xml,mapred-site.xml

當然,加入hive-site.xml,hbase-site.xml 如果需要讀取hive,hbase的數據。

在/usr/local/greenplum-db/pxf/conf/conf目錄下pxf-env.sh中,這個目錄和第二步中的PXF_CONF設定對應,

加入對應的keytab與principal。

這裏需要重點強調壹下, 上面的配置對應的是segment節點 ,master節點不做要求。最好所有的配置都壹樣,省的出現各類問題。

我用的gp是pivolt的5.16版本,自帶的hadoop版本是2.8.5,我的hadoop版本是2.7.3的,然後查詢的時候,

就報錯了各種NosuchMethod。最後實在沒辦法了,我就把gp自帶的jar替換成我的hadoop版本的。

gp需要的hadoop的jar在 ${妳的安裝目錄}/greenplum-db/pxf/lib/shared 這個目錄下,

替換的jar有

hadoop-auth-2.7.3.2.6.1.0-129.jar

hadoop-aws-2.7.3.2.6.1.0-129.jar

hadoop-azure-2.7.3.2.6.1.0-129.jar

hadoop-azure-datalake-2.7.3.2.6.1.0-129.jar

hadoop-common-2.7.3.2.6.1.0-129.jar

hadoop-hdfs-2.7.3.2.6.1.0-129.jar

hadoop-mapreduce-client-core-2.7.3.2.6.1.0-129.jar

hadoop-yarn-api-2.7.3.2.6.1.0-129.jar

其實就是hadoop相關的,然後就可以了。

以上四步中,官方文檔有第二步,第三步,第壹步在網上其他教程中也能夠解決。但是,第四部,官方文檔中沒有提及,網上的相關的資料基本上沒有。pxf這個功能也是最近才發布,gp用的人比較少,更別提pxf了。作為第壹個采坑,希望分享出來,幫助大家。

1.?User null does not belong to hdfs

在hive-site.xml中加入

<property>

? <name>hive.warehouse.subdir.inherit.perms</name>

? <value>false</value>

</property>

2.ERROR: "set_ugi() not successful, Likely cause: new client talking to old server. Continuing without it"?

正在解決……

  • 上一篇:職場類電視劇
  • 下一篇:java 32位和64位的區別
  • copyright 2024編程學習大全網