HPL/SQL系列:安装

匿名 (未验证) 提交于 2019-12-03 00:22:01

一. 前言

相信很多公司遇到跟我们类似的问题:要将Oracle的应用迁移到Hadoop平台中,遭遇到大量的Oracle存储过程需要改造。最便捷的解决方式就是使用HPL/SQL,其大部分语法兼容Oracle。可惜,这只是看上去很美好,在经过是各种测试之后发现HPL/SQL的Bug实在太多,太不成熟,应用在生产上需要规避很多的坑。我把我们在实际使用过程中遇到的HPL/SQL各种坑记录下来,提供大家参考。

Hadoop环境:CDH 5.14.2

HPL/SQL版本:0.3.31


二. HPL/SQL安装

HPL/SQL的安装相对比较简单,按照官方文档操作即可。

1. 去官网下载最新的版本

http://www.hplsql.org/

2. 系统需求

Java 1.6 or higher

Hadoop 1.x. and 2.x

3. 安装

1)解压

[root@node1 install]# mkdir /hadoop/hplsql

[root@node1 install]# tar -zxvf hplsql-0.3.31.tar.gz-C /hadoop/hplsql/

[root@node1 install]# cd /hadoop/hplsql/

创建一个Link以实现后续版本升级的方便性:

[root@node1 hplsql]# ln -s hplsql-0.3.31 hplsql

2)修改配置

[root@node1 hplsql]# chmod +x hplsql

针对CDH版本,编辑hplsql,删除所有包含“export "HADOOP_CLASSPATH=..."”的行,增加一行:

export"HADOOP_CLASSPATH=/hadoop/cloudera/parcels/CDH/jars/*"

3)测试是否可以正常执行

[root@node1 hplsql]# ./hplsql --version

HPL/SQL 0.3.31

4)将HPLSQL添加到PATH中

[root@node1 ~]# vi /etc/profile

PATH=/hadoop/hplsql/hplsql:$PATH

[root@node1 ~]#source /etc/profile

5)修改hplsql-site.xml

定义YARN job queue和HiveServer2的地址(修改蓝色字体的部分):

<property>

</property>

……..

<property>

jdbc:hive2://node2:10000;admin;hive</value>

</property>


三. HPL/SQL的运行

简单的HPL/SQL函数测试:

[root@node1 ~]# hplsql -e "CURRENT_DATE+1"

HPL/SQL执行Hive SQL的测试:

[root@node1 ~]# hplsql -e "select count(1) from test01"

如果都执行成功,恭喜你,HPL/SQL安装成功!


四. 安装中的坑

问题:

Exception in thread "main"java.lang.IncompatibleClassChangeError: classorg.apache.hive.service.cli.thrift.TCLIService$Client has interfaceorg.apache.thrift.TServiceClient as super class

解决方法:

根据hplsql文件里面的设置:export"HADOOP_CLASSPATH=/hadoop/cloudera/parcels/CDH/jars/*"

在对应目录中将“libthrift-0.5.0.jar,libthrift-0.9.0.jar,libthrift-0.9.3.jar”三个包移走,问题就可以解决。


备注:

有兴趣一起讨论HPL/SQL和Hive技术的,可以加入QQ群:689163852


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!