美文网首页
Greenplum pxf 连接hadoop

Greenplum pxf 连接hadoop

作者: sydt2011 | 来源:发表于2019-02-01 12:41 被阅读0次

    最近在搞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一下。

    1.添加加载类

    遇到的问题: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安装目录。

    2.指定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的数据。

    3.指定kerberos配置文件

    在/usr/local/greenplum-db/pxf/conf/conf目录下pxf-env.sh中,这个目录和第二步中的PXF_CONF设定对应,

    加入对应的keytab与principal。

    这里需要重点强调一下,上面的配置对应的是segment节点,master节点不做要求。最好所有的配置都一样,省的出现各类问题。

    4.替换hadoop版本。

    我用的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了。作为第一个采坑,希望分享出来,帮助大家。

    gp连接hive的出现的问题

    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" 

    正在解决……

    相关文章

      网友评论

          本文标题:Greenplum pxf 连接hadoop

          本文链接:https://www.haomeiwen.com/subject/uuxdsqtx.html