使用dbeaver连接到配置单元数据库

d5vmydt9  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(590)

我有一个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以访问位于“隐藏”网络上的配置单元数据库?

lnvxswe2

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

7eumitmz

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

相关问题