多数据源可视化工具 DataGrip 和 DBeaver 使用
1.Connection refused:connect.
# 查询一下所有打开 10000 端口的进程
lsof -i :10000
# 查询结果为空
**连接报错原因:**没有启动 HiveServer2 服务,它是 Apache Hive 的一个重要组件,用于提供客户端查询服务。它支持多客户端并发查询、身份验证,并通过 JDBC 和 Thrift 协议与 Hive 交互。HiveServer2 是 HiveServer1 的改进版本,解决了并发请求、会话管理和身份验证等问题。
- 直接启动(可以看详细的日志)
[root@localhost bin]# hiveserver2
which: no hbase in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/java/jdk1.8.0_241/bin:/usr/local/hadoop-3.1.3/bin:/usr/local/hadoop-3.1.3/sbin:/usr/local/hive/bin:/root/bin)
2025-07-28 11:59:36: Starting HiveServer2
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop-3.1.3/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Hive Session ID = e2c56ba5-44c1-43d3-a99a-f121ee55c499
Hive Session ID = e7060698-5721-497a-9bc8-680dce3a00eb
Hive Session ID = 16dd99d1-07d6-435b-ae17-52e574a54742
Hive Session ID = 12509c06-a663-4b27-bc56-0c3f1b3f4e31
- 生产环境启动(后台启动)
nohup hiveserver2 >> hiveserver2.log 2>&1 &
启动后再查询进程:
[root@localhost ~]# lsof -i :10000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 12173 root 559u IPv6 146330 0t0 TCP *:ndmp (LISTEN)
2.可视化工具
2.1 DataGrip
大名鼎鼎的 JetBrains 的产品无需多言,首次进行连接会下载 Hive 的驱动,很快就下载好了,这里不再复现下载过程,界面统一,用过它家产品的程序员就很容易上手了。

Failed 的原因也是没有启动 HiveServer2 导致的,启动后就能成功连接了:

此时前台启动的 HiveServer2 也有一些OK输出:
[root@localhost bin]# hiveserver2
which: no hbase in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/java/jdk1.8.0_241/bin:/usr/local/hadoop-3.1.3/bin:/usr/local/hadoop-3.1.3/sbin:/usr/local/hive/bin:/root/bin)
2025-07-28 11:59:36: Starting HiveServer2
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop-3.1.3/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Hive Session ID = e2c56ba5-44c1-43d3-a99a-f121ee55c499
Hive Session ID = e7060698-5721-497a-9bc8-680dce3a00eb
Hive Session ID = 16dd99d1-07d6-435b-ae17-52e574a54742
Hive Session ID = 12509c06-a663-4b27-bc56-0c3f1b3f4e31
OK
OK
OK
OK
OK
OK
OK
使用过程跟 Navicat 类型,双击表就能查看数据,还有悬浮的工具可以设置显示的行数:

添加新的 Query Console即可写 SQL 了:

SQL 不管是关键字还是数据库、表名称、字段名的补全都是很迅速的:

查询结果还可以切换试图模式:

2.2 DBeaver
DBeaver 也是一个通用的数据库管理工具,支持多种数据库,包括 MySQL、PostgreSQL、Oracle、SQLite 等 300 多种数据库(包括云数据库)。比 Navicat 的连接类型要多很多,而且是 **开源免费 **** **的。但是官网的下载速度不行,首次连接 Hive 也会下载对应的驱动,可能会下载失败,大家多尝试几次就行了。
我第一次使用 DBeaver 连接 Hive,发现怎么都连不上,然后去搜攻略,有的小伙伴说要使用 Hive 的 lib 下的 jar 包,也有让下载好几个 jar 包的,最终都以失败告终,我想会不会是工具不行,就换用 DataGrip 发现也是连不上,lsof -i :10000 之后,才知道我是没有启动 HiveServer2 服务,妥妥的冤枉了 DBeaver 😭

连接测试成功:

保存连接,双击表会显示表属性:

切换到数据即可查询记录:

点击 SQL 可以打开 SQL 编辑器:

关键字、表名称、字段名的补全都是很迅速的,而且表、字段的属性也会显示出来,选中表之后会主动添加表别名,功能很是强,而且是免费的!!!

3.总结
Hive 的可视化工具是很多的,但是大家还是会选能连接多个数据库的通用工具,个人比较推荐 DBeaver:
- 首先就是免费;
- 不仅免费功能还很全面很强大;
- 感觉是面向开发者的,有一定的复杂度(功能强也不得不复杂了)和学习门槛。

被折叠的 条评论
为什么被折叠?



