1. 概述编辑
Hadoop 是个很流行的分布式计算解决方案,Hive 是建立在 Hadoop 上的数据仓库基础构架。
它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。
Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。本章我们将介绍如何在 FineBI 中连接 Hadoop Hive 数据库。
2. 数据连接编辑
2.1 配置信息
驱动 | URL | 支持数据库版本 | 驱动下载 |
---|---|---|---|
org.apache.hive.jdbc.HiveDriver | jdbc:hive2://ip:port/dbname | V1.1 | |
V2.1.1 | |||
V2.3.3 |
注:此处使用 Hadoop Hive.zip 驱动时,可能会跟 FineBI 自带的 JAR 包有冲突,需要使用驱动隔离插件来解决该冲突,参见文档:驱动隔离插件
2.2 连接步骤
1)根据数据库的版本下载对应的 Hadoop Hive 驱动包,并将该驱动包放置到 FineBI 文件夹%FineBI%\webapps\webroot\WEB-INF\lib下,重启 FineBI 。
注:此处若使用驱动隔离插件,则按照文档放置 jar 包即可,不需要再将其放入 lib 目录下。
2)登录数据决策系统,选择管理系统>数据连接>数据连接管理,点击新建数据连接,在所有选项下选Hadoop Hive,如下图所示:
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 。
若不选择 kerberos 认证,则跟其他数据库设置一致,选择填入相关信息即可(相关介绍可参考 配置数据连接 ),如下图所示:
4)点击测试连接,若出现如下图的测试连接成功弹出框,则表示成功连接上数据库。如下图所示:
5)测试连接成功后点击右上角的保存按钮,该数据连接即添加成功。如下图所示:
3. 注意事项编辑
连接 Hadoop Hive 数据库时,FineBI 默认查询出的字段名前会加表名,若不想要加表名,需要在数据库文件 hive-site.xml 中进行配置。如下图,将 value 的值由默认的 true 改成 false 。
连接的 Hive 数据库需要为 mapreduce 运行模式,其他模式例如 tez 模式会导致使用报错。
数据库地址无法 ping 通时会有报错:java:sql.SQLException:Could not open client transport with JDBC,可能是数据库和 BI 服务器网络不通,如下图所示: