使用 DBeaver 连接 Hive 数据库

Ric*_* T. 5 hadoop hive jdbc dbeaver

我有一个 Hortonworks Hadoop 集群,其中数据节点位于主节点/头节点之外的单独网络上。访问数据节点的唯一方法是通过主节点或边缘节点。从边缘节点,我执行 hive 命令以连接到我的 hive 数据库。

我无法使用 DBeaver(4.3.0,64 位 Windows)或 hive 命令行界面从我的桌面连接到 hive 数据库。通过 DBeaver,我尝试创建到我的边缘节点的 SSH 隧道并不断收到“无法使用 JDBC Uri 打开客户端传输jdbc:hive2://127.0.0.1:[port#]/[database]。.

Hive/Apache Hive 驱动程序的配置:

 General Tab:
     Host: dataNodeName
     Port: 10000
     Database/Schema: databaseName
     User name: myUID

 SSH Tunnel Tab (Network page):
     Checked Use SSH Tunnel
     Host/IP:   edgeNodeServerName
     Port:      22
     User Name: myUID
     Authentication Method:  Password
     Password:  myPWD

     Advanced
       Local port: 0
       Keep-Alive interval (ms): 0
Run Code Online (Sandbox Code Playgroud)

当我选择“测试连接”并将本地端口设置为“0”时,我收到了上面带有随机端口号的错误消息。如果我将本地端口设置为“10000”,则会收到端口号为“10000”的上述错误。

看起来 DBeaver 忽略了通用 JDBC 连接设置——创建的 JDBC 字符串中的主机名是 127.0.0.1 而不是数据节点名称。

我错过了什么?如何设置 DBeaver 以访问位于“隐藏”网络上的 Hive 数据库?

Roh*_*ala 2

您的主机名是否配置为 jdbc 连接语法中提到的 IP 地址 (127.0.0.1)?您可以从 Unix shell 连接到 beeline 吗?连接到 beeline(hiveserver2) 的语法: beeline -u jdbc:hive2://<hostname>:<hive listener port>/<database> -n username> -p <password>

如果您能够连接到 beeline,则应该能够使用 DBeaver 中的相同端口号和主机连接到 hive。Hive 侦听器端口默认配置为 10000,但您的管理员可能可以更改端口号。检查 hive-site.xml 中的端口号,或从管理员处获取。

您可以取消选中 SSH 隧道并尝试吗?

此链接包含从头开始的所有设置,请检查您是否错过了任何步骤。

https://www.linkedin.com/pulse/query-hive-hiveserver2-from-windows-using-universal-database-nimmala