我有一个hortonworkshadoop集群,其中数据节点位于主节点/头节点之外的独立网络上。访问数据节点的唯一方法是通过主节点或边缘节点。从边缘节点,我执行hive命令连接到我的hive数据库。
我无法使用dbeaver(4.3.0,64位windows)或配置单元命令行界面从桌面连接到配置单元数据库。通过dbeaver,我尝试创建一个到边缘节点的ssh隧道,并不断收到“无法用jdbc uri打开客户端传输”。 jdbc:hive2://127.0.0.1:[port#]/[database]
.
配置单元/apache配置单元驱动程序的配置:
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”的情况下选择“test connection”时,我会收到上面带有随机端口号的错误消息。如果我将本地端口设置为“10000”,我将收到端口号为“10000”的上述错误。
看起来dbeaver忽略了通用的jdbc连接设置——创建的jdbc字符串中的主机名是127.0.0.1,而不是数据节点名。
我错过了什么?如何设置dbeaver以访问位于“隐藏”网络上的配置单元数据库?
2条答案
按热度按时间lnvxswe21#
您的主机名是用jdbc connect语法(127.0.0.1)中提到的ip地址配置的吗?您能从unix shell连接到beeline吗?连接到beeline(hiveserver2)的语法:
beeline -u jdbc:hive2://<hostname>:<hive listener port>/<database> -n username> -p <password>
如果您能够连接到beeline,那么您应该能够从dbeaver使用相同的端口号和主机连接到hive。默认情况下,配置单元侦听器端口配置为10000,但是管理员可能会更改端口号。检查hive-site.xml中的端口号,或从管理员处获取。请取消选中ssh隧道并重试好吗?
我写了一篇关于这个的文章,请查查是否有帮助。
https://www.linkedin.com/pulse/query-hive-hiveserver2-from-windows-using-universal-database-nimmala
7eumitmz2#
不确定你的环境是否是煤焦化的,但假设是-
以下是连接到cloudera时对我起作用的内容-
从管理员那里获取krb5.conf或krb5.ini并将其放在某个目录中。我通常把文件放在一个地方,我把我的键标签。
创建jaas.conf文件并将其放置在相同的位置(或您选择的位置)
jaas.conf必须如下所示(复制粘贴)-
客户端{com.sun.security.auth.module.krb5loginmodule required debug=true donotprompt=true usekeytab=true keytab=“c:\users{user}\krb5cc{user}”useticketcache=true renewtgt=true principal=“{user}@domain.org”;};
编辑dbeaver.ini文件并提供对这两个文件的引用(将以下行附加到现有dbeaver.ini)。请确保备份dbeaver.ini,如果重新安装或替换为较新版本,dbeaver.ini可能会被替换,在这种情况下,可以从备份dbeaver.ini文件中复制下面的行-
-djavax.security.auth.useSubjectCredOnly=假
-djava.security.krb5.debug=真
-dsun.security.krb5.debug=真
-djava.security.krb5.conf=c:\users{user}\documents\keytab\krb5.conf
-djava.security.auth.login.config=c:\users{user}\documents\keytab\jaas.conf
最后一步(您可能需要也可能不需要)
我在连接之前初始化我的keytab。所以我使用shell命令-
创建连接后按f4
确保在user中只输入要初始化keytab的用户名,而不输入其他名称。它不应该是{user}@domain.org。
使用shell命令初始化keytab