背景:由于工作需要,當(dāng)前分析研究的數(shù)據(jù)基于Hadoop的Hive數(shù)據(jù)庫中,且Hadoop服務(wù)端無權(quán)限進行操作且使用安全模式,在研究了Dbeaver、Squirrel和Hue三種連接Hive的工具,在無法繞開useKey認(rèn)證的情況下,只能使用DBeaver工具進行遠(yuǎn)程連接。
【Hadoop環(huán)境】:Hive版本:3.1.0 KrbClient版本:1.17
【JDK版本】:1.8.0_181
一、 配置 Windows 的 kerberos 認(rèn)證
注:由于當(dāng)前Hadoop服務(wù)算使用FusionInsight安全模式需要使用kerberos進行認(rèn)證,如果使用 FusionInsight非安全模式進行對接不需要使用 kerberos認(rèn)證。
- 前置條件:已完成 FusionInsight HD V100R002C70SPC200 的安裝,包含 KrbServer 組件。
- 配置kerberos認(rèn)證
步驟 1 下載并安裝 MIT Kerberos
下載網(wǎng)址:http://web.mit.edu/kerberos/dist/。
版本與操作系統(tǒng)位數(shù)保持一致,本文版本 kfw-4.1-amd64.msi。
安裝路徑:C:\Program Files\MIT\Kerberos(默認(rèn)路徑)
步驟 2同步客戶端機器的時間
與 FusionInsight HD 集群的時間一致,時間差要小于 5 分鐘。
步驟 3 設(shè)置 Kerberos 的配置文件
登錄FusionInsight服務(wù)端頁面,點擊右上角“用戶名”->“下載認(rèn)證憑據(jù)”后保存至本地解壓,獲取krb5.conf
和user.keytab
文件。
C盤創(chuàng)建文件目錄ecotesting/Fiber/conf
文件夾目錄(目錄創(chuàng)建可自定義,但需記住文件的絕對路徑,如C:/ ecotesting/Fiber/conf
),將krb5.conf
和user.keytab
文件負(fù)責(zé)到當(dāng)前conf文件夾下。
復(fù)制krb5.conf
文件,修改文件后綴為.ini
,保存文件為krb5.ini
(注意,在windows中設(shè)置顯示文件后綴,不然文件可能保存為krb5.ini.txt文件)。
將krb5.ini文件復(fù)制到如下目錄中:“C:\Program Files\MIT\Kerberos
”、“C:\Windows
”、“C:\ProgramData\MIT\Kerberos5
”。其中“C:\ProgramData\MIT\Kerberos5
”為系統(tǒng)隱藏文件夾,直接輸入路徑可進入。
步驟 4 設(shè)置 Kerberos 票據(jù)的緩存文件和環(huán)境變量
創(chuàng)建存放票據(jù)的目錄,例如“C:\temp
”。設(shè)置 Windows 的系統(tǒng)環(huán)境變量,變量名為“KRB5CCNAME
”,變量值為“C:\temp\krb5cache
”;變量名為“KRB5_CONFIG
”,變量值為“C:/ ecotesting/Fiber/conf/krb5.ini
”。配置完成后,重啟機器。
步驟 5 在 Windows 上進行認(rèn)證
(1)使用客戶端進行認(rèn)證
打開 MIT Kerberos,單擊“get Ticket”,在彈出的 MIT Kerberos: Get Ticket 窗口中,Pricipal 輸入用戶名(如:sxappopt@HADOOP.COM
),Password 輸入密碼,單擊“OK”。
(2)通過命令行進行認(rèn)證
打開windows命令行窗口,進入到MIT安裝目錄(如: C:\Program Files\MIT\Kerberos\bin
),使用keytab文件進行認(rèn)證,并查看認(rèn)證信息是否正確以及認(rèn)證緩存文件是否生成。
認(rèn)證命令:kinit –kt keytabPath principle
(keytabPath為keytab文件所在路徑,principle為認(rèn)證用戶名)
如:kinit –kt C:/ ecotesting/Fiber/conf/user.keytab gzdsj_ruixin
文章來源:http://www.zghlxwxcb.cn/news/detail-491799.html
二、 安裝Dbeaver客戶端
-
下載并安裝 DBeaver
由于本地jdk版本為1.8.0_181,考慮到版本兼容性,下載DBeaver版本為21.1.1版本。PS:勿安裝最新版本22.3.4版 -
在windows hosts文件中添加集群的ip和域名
登錄FusionInsight服務(wù)端頁面,選擇主頁—集群—集群名,右擊選擇“下載客戶端”,然后選擇“僅下載配置文件”,下載至本地后解壓,復(fù)制hosts
至本地“C:\Windows\System32\drivers\etc
”進行替換。 -
創(chuàng)建Zookeeper認(rèn)證文件
在C:\ecotesting\Fiber\conf
目錄下新建jaas.conf
文件,配置認(rèn)證的用戶和密碼。文件內(nèi)容如下:
Client {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="C:\\ecotesting\\Fiber\\conf\\user.keytab"
principal="gzdsj_ruixin"
useTicketCache=false
storeKey=true
debug=true;
};
注意: 其中keyTab參數(shù)以及principal參數(shù)為對應(yīng)的認(rèn)證用戶名以及認(rèn)證文件路徑。
-
修改DBeaver配置文件dbeaver.ini文件
指定Dbeaver使用的JDK虛擬機,添加(注意,參數(shù)和值之間需要換行)
-vm
C:\Program Files\Java\jdk1.8.0_181\bin
添加認(rèn)證配置信息:文章來源地址http://www.zghlxwxcb.cn/news/detail-491799.html
-Djava.security.auth.login.config=C:\\ecotesting\\Fiber\\conf\\jaas.conf
-Dzookeeper.sasl.clientconfig=Client
-Dzookeeper.auth.type=kerberos
-Dzookeeper.server.principal=zookeeper/hadoop.hadoop.com
-
重啟DBeaver.
修改dbeaver.ini
后需要重啟DBeaver才生效。 -
獲取org.apache.hive.jdbc.HiveDriver驅(qū)動依賴jar包
在Linux中Hive客戶端安裝路徑下獲取HiveDriver驅(qū)動依賴jar包。進入/opt/client/Hive/Beeline/
目錄下,下載lib
文件夾至DBeaver安裝路徑(默認(rèn)為C:\Program Files\Dbeaver
)下。
三、 使用自定義JDBC對接Hive
- 進入DBeaver界面,菜單選擇Database->DriverManager,在彈出的對話框中點擊 New.
- 新建的連接名字為FI-hive-test,連接信息如下,完成后點擊OK
說明:
- org.apache.hive.jdbc.HiveDriver
2.jdbc:hive2://172.16.4.121:24002,172.16.4.122:24002,172.16.4.123:24002/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;sasl.qop=auth-conf;auth=KERBEROS;principal=hive/hadoop.hadoop.com@HADOOP.COM
(具體信息可Linux中的Hive客戶端通過beeline連接成功打印的日志中截取復(fù)制使用)
- Hadoop
- 點Add File在下載好的hive客戶端lib中把所有jar包加進去
- 菜單欄選擇File->New->Database Connection.點擊 Next.
- 選擇FI-hive-test點擊NEXT
- 點擊Finish
- 右鍵選擇FI-hive-test點擊Edit Connection
- 點擊Test connection
到了這里,關(guān)于Dbeaver連接Hive數(shù)據(jù)庫操作指導(dǎo)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!