[英]Connecting to Hive Database with 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
當我選擇“測試連接”並將本地端口設置為“0”時,我收到了上面帶有隨機端口號的錯誤消息。 如果我將本地端口設置為“10000”,則會收到端口號為“10000”的上述錯誤。
看起來 DBeaver 忽略了通用 JDBC 連接設置——創建的 JDBC 字符串中的主機名是 127.0.0.1 而不是數據節點名稱。
我錯過了什么? 如何設置 DBeaver 以訪問位於“隱藏”網絡上的 Hive 數據庫?
您的主機名是否配置了 jdbc 連接語法 (127.0.0.1) 中提到的 IP 地址? 你能從你的 Unix shell 連接到直線嗎? 連接到 beeline(hiveserver2) 的語法beeline -u jdbc:hive2://<hostname>:<hive listener port>/<database> -n username> -p <password>
如果您能夠連接到直線,您應該能夠使用 DBeaver 中的相同端口號和主機連接到 hive。 Hive 偵聽器端口默認配置為 10000,但您的管理員可能會更改端口號。 檢查 hive-site.xml 中的端口號,或從 admin 獲取它。
您能否取消選中 SSH 隧道並嘗試?
此鏈接包含從頭開始的所有設置,請檢查您是否遺漏了任何步驟。
https://www.linkedin.com/pulse/query-hive-hiveserver2-from-windows-using-universal-database-nimmala
不確定您的環境是否是 Kerberized,但假設它是 -
以下是連接到 Cloudera 時對我有用的內容 -
jaas.conf 必須如下所示(復制粘貼)-
客戶端 { com.sun.security.auth.module.Krb5LoginModule required debug=true doNotPrompt=true useKeyTab=true keyTab="C:\\Users{user}\\krb5cc_{user}" useTicketCache=true refreshTGT=true principal="{user }@DOMAIN.ORG" ; };
編輯您的 dbeaver.ini 文件並提供對這兩個文件的引用(將以下行附加到現有的 dbeaver.ini)。 確保備份 dbeaver.ini,重新安裝或替換為新版本,dbeaver.ini 可能會被替換,在這種情況下,您可以從備份 dbeaver.ini 文件中復制以下行 -
-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.krb5.debug=true
-Dsun.security.krb5.debug=true
-Djava.security.krb5.conf=C:\\Users{用戶}\\Documents\\Keytabs\\krb5.conf
-Djava.security.auth.login.config=C:\\Users{User}\\Documents\\Keytabs\\jaas.conf
最后一步(您可能需要也可能不需要)
我在連接之前初始化我的密鑰表。 所以我使用 Shell 命令 -
我也無法將 DBeaver 配置為 Hive,我的解決方案是使用Cloudera 的 ODBC 驅動程序。 它比 JDBC 驅動程序運行得更好(自動完成工作,更快,無需運行 kinit),而且我可以自動創建它。
唯一的問題是您必須是管理員才能安裝它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.