历史版本25 :Hadoop Hive数据连接 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

Hadoop 是个很流行的分布式计算解决方案,Hive 是建立在 Hadoop 上的数据仓库基础构架。

Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。本章我们将介绍如何在 FineBI 中连接 Hadoop Hive 数据库。

1.2 注意事项

连接的 Hive 数据库需要为 mapreduce 运行模式,其他模式例如 tez 模式会导致使用报错。

2. 数据连接编辑

2.1 配置信息

驱动    URL  支持数据库版本驱动下载 
    org.apache.hive.jdbc.HiveDriver         jdbc:hive2://ip:port/dbname   V1.1

Hive1.1.zip

V2.1.1

Hive2.1.1.rar

V2.3.3

Hive2.3.3.rar


2.2 安装驱动隔离插件

不使用驱动隔离插件,直接连接数据库。连接方式参见本文 2.3 节。但这种方式可能有 JAR 包之间的冲突从而导致连接失败。

安装驱动隔离插件。驱动隔离插件下载安装详情请参见:驱动隔离插件

2.3 放置驱动文件

根据数据库的版本下载对应的 Hadoop Hive 驱动压缩包,并解压到 FineBI 文件夹%FineBI%\webapps\webroot\WEB-INF\lib下,重启 FineBI 。

2.4 建立数据连接

1)登录数据决策系统,选择「管理系统>数据连接>数据连接管理」,点击「新建数据连接>所有」选择「Hadoop Hive」,如下图所示:

1574490248175462.png

3)点击确定进入数据连接配置页面,按照前面提供的配置信息,输入自身数据库的对应信息。

可选择kerberos认证。若选择 kerberos 认证,则需填入注册过 kdc 的客户端名称、keytab 密钥路径和 kerberos 认证对应URL,参考 数据连接Kerberos认证 ,如下图所示:

  • 连接前请检查 /etc/hosts 中的机器名对应 IP 是否为局域网 IP;

  • 检查 /etc/hostname 中机器名设置和 /etc/hosts 中是否配置一致;

  • 检查 FineBI 所在机器 hosts 配置的 IP+ 机器名是否正确;

  • 本地连接时需要配置 /etc/hosts 文件,添加远端映射:IP+机器名,例如: 192.168.5.206  centos-phoenix 。

1574490306356431.png

若不选择 kerberos 认证,则跟其他数据库设置一致,选择填入相关信息即可(相关介绍可参考 配置数据连接 ),如下图所示:

1574490356439998.png

2.5 测试连接

点击测试连接,若出现如下图的测试连接成功弹出框,则表示成功连接上数据库。如下图所示:

12.png

测试连接成功后点击右上角的「保存」按钮,该数据连接即添加成功。如下图所示:

1574490439589439.png

3. 注意事项编辑

3.1 查询出的字段名去掉表名

连接 Hadoop Hive 数据库时,FineBI 默认查询出的字段名前会加表名,若不想要加表名,需要在数据库文件 hive-site.xml 中进行配置。如下图,将 value 的值由默认的 true 改成 false 。

3.2 数据库地址无法 ping 通

数据库地址无法 ping 通时会有报错:java:sql.SQLException:Could not open client transport with JDBC,可能是数据库和 BI 服务器网络不通,如下图所示:

微信图片_20200518111219.png

3.3 hive连接报错 08s01

问题描述:

hive 连接时报错 08s01,报错日志如下所示:

Error: Could not open client transport with JDBC Uri: jdbc:hive2://192.168.100.132:10000: java.net.ConnectException:Connection refused (Connection refused) (state=08S01,code=0)

解决方案:

Hive Server2 的服务没有开启,开启命令为:hive --service hiveserver2 &

3.4 hive2驱动支持向下兼容

安装 hive2 驱动,支持直接连 hive1 。因为 hive2 支持向下版本兼容。