页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

Hive的版本变化较快,hive最新版本为1.2.1(2015-6-27日发布),每个版本的配置可能有所不同。本文说明如何使用jdbc连接hive 1.2.1。 

1、启动Hiveserver2

首先要在服务端启动hive服务,命令是hive –service hiveserver2,启动后终端窗口没有什么显示,但这是正常现象。
Image Removed

...

2、添加JDBC驱动包

Hive 1.2.1的驱动包需要以下2文件:
Image Removed

  • 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启动时会进行冲突校验,一旦发现上述冲突就会报出上面的异常:
Image Removed

参考文档“如何向war或ext包中添加或删除文件”,使用压缩工具打开jar包,然后把里头的javax目录删掉即可。
Image Removed

4、替换Smartbi中的hive驱动包

 

...

5、启动Smartbi创建连接

重启启动服务器后,登录Smartbi,切换到 "定制管理》数据管理》数据”界面,“新建关系数据源”,然后再编写查询。

Image Removed
右键hive数据源的数据库管理添加hive里面的表

Image Removed

利用原生SQL查询进行hive查询

...

注1:

1.1 问题情况:当连接数据源测试通过时,进行数据库管理添加表却报空指针错误。

1.2 解决方案:请参考使用Maven Hive JDBC驱动程序解决问题,数据源连接的时候校验语句为空,如下图所示:

Image Removed

注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 

Image Removed

 

...

Smartbi V8及以上版本简化Hive的部署,只需要把JDBC驱动文件放到对应目录下,在启动了Hive的前提下,就能完成Hiive数据源的连接。

本章节示例以Hive 2.0版本为演示,连接详情如下。

添加JDBC驱动包

Hive 2.0的驱动包需要以下几个文件:
Image Added

将以上的这些文件放到“Smartbi安装目录/Tomcat/bin/dynamicLibraryPath/HADOOP_HIVE”下。



启动Smartbi创建连接

1、重启服务器后,登录Smartbi,在“定制管理”界面选择 数据源连接 > 关系数据源,打开数据源连接界面,按照如下进行Hive数据源连接。

Image Added
2、保存测试通过的Hive数据源,在资源目录树中找到该数据源节点,在其右键菜单中选择 数据库管理,添加hive里面的表。

Image Added

3、添加表并保存后,即可利用这些表进行数据集定义。


信息
title使用建议

Smartbi连接大数据平台hive提高查询速度建议:使用presto连接,通过presto的多节点集群提升性能。Presto使用请参考:
https://history.wiki.smartbi.com.cn/plugins/servlet/mobile#content/view/40436414