我有一个 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
当我选择“测试连接”并将本地端口设置为“0”时,我收到上述带有随机端口号的错误消息。如果我将本地端口设置为“10000”,则会收到端口号“10000”的上述错误。
看起来 DBeaver 忽略了通用 JDBC 连接设置——创建的 JDBC 字符串中的主机名是 127.0.0.1 而不是数据节点名。
我错过了什么?如何设置 DBeaver 以访问位于“隐藏”网络上的 Hive 数据库?