【发布时间】:2017-12-19 21:35:14
【问题描述】:
我有一个 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 数据库?
【问题讨论】:
-
HiveServer2的端口不能对外开放吗?为什么需要 SSH 隧道?
-
换句话说,您需要通过隧道到 HiveServer 才能使其工作,而不是边缘节点。