Hive的版本变化较快,hive最新版本为1.2.1(2015-6-27日发布),每个版本的配置可能有所不同。本文说明如何使用jdbc连接hive 1.2.1。
1、启动Hiveserver2
首先要在服务端启动hive服务,命令是hive –service hiveserver2,启动后终端窗口没有什么显示,但这是正常现象。
...
2、添加JDBC驱动包
Hive 1.2.1的驱动包需要以下2文件:
- Hadoop-common-x.jar 位于hadoop安装目录/share/hadoop/common目录下。
- Hive-jdbc-x-standalone.jar 位于hive安装目录/lib目录下。
3、删除hive驱动包中的javax目录
这是个技术障碍点,hive驱动包下有包含javax.servlet包,与Tomcat自带的servlet-api.jar冲突, Tomcat启动时会进行冲突校验,一旦发现上述冲突就会报出上面的异常:
参考文档“如何向war或ext包中添加或删除文件”,使用压缩工具打开jar包,然后把里头的javax目录删掉即可。
4、替换Smartbi中的hive驱动包
...
5、启动Smartbi创建连接
重启启动服务器后,登录Smartbi,切换到 "定制管理》数据管理》数据源”界面,“新建关系数据源”,然后再编写查询。
右键hive数据源的数据库管理添加hive里面的表
利用原生SQL查询进行hive查询
...
注1:
1.1 问题情况:当连接数据源测试通过时,进行数据库管理添加表却报空指针错误。
1.2 解决方案:请参考使用Maven Hive JDBC驱动程序解决问题,数据源连接的时候校验语句为空,如下图所示:
注2:
2.1 问题情况:在产品中已经添加好了如下三个JAR包,但是在测试过程中出现如下截图,红框标记的错误。
Hadoop-common-x.jar
Hive-jdbc-x-standalone.jar
Slf4j-log4j12-x.jar
2.2 问题原因:由于hive-jdbc-1.3.0-standalone.jar其中有引用到其他的类<TaskAttemptContext>,但是并没有在JAR包中找到此类;
2.3 解决方案:可以考虑通过添加包含此类的JAR包<hadoop-mapreduce-client-core-0.23.1.jar>。
如何添加jar包请参考:如何向Smartbi中添加数据库驱动或JAVA类jar
Smartbi V8及以上版本简化Hive的部署,只需要把JDBC驱动文件放到对应目录下,在启动了Hive的前提下,就能完成Hiive数据源的连接。
本章节示例以Hive 2.0版本为演示,连接详情如下。
添加JDBC驱动包
Hive 2.0的驱动包需要以下几个文件:
将以上的这些文件放到“Smartbi安装目录/Tomcat/bin/dynamicLibraryPath/HADOOP_HIVE”下。
启动Smartbi创建连接
1、重启服务器后,登录Smartbi,在“定制管理”界面选择 数据源连接 > 关系数据源,打开数据源连接界面,按照如下进行Hive数据源连接。
2、保存测试通过的Hive数据源,在资源目录树中找到该数据源节点,在其右键菜单中选择 数据库管理,添加hive里面的表。
3、添加表并保存后,即可利用这些表进行数据集定义。