使用DBeaver訪問Kerberos環(huán)境下的Hive

應(yīng)用背景

有時(shí)想看看大數(shù)據(jù)平臺(tái)上Hive表的結(jié)構(gòu)和數(shù)據(jù)字典,或者對(duì)數(shù)據(jù)進(jìn)行簡單查詢燕垃、核驗(yàn),可以裝一個(gè)SQL開發(fā)工具訪問CDH集群中的Hive。

測試環(huán)境:

  • CDH版本為5.13.1
  • 客戶端OS為Windows 10或Windows 7

配置Kerberos客戶端環(huán)境

在客戶端OS Windows 10或Windows 7上安裝Kerberos客戶端卵牍,在Kerberos官網(wǎng)下載,地址如下沦泌,

https://web.mit.edu/kerberos/dist/index.html

一路點(diǎn)擊Next完成安裝糊昙。

配置C:\ProgramData\MIT\Kerberos5\krb5.ini文件,將KDC Server服務(wù)器上/etc/krb5.conf文件中的部分內(nèi)容谢谦,拷貝到krb5.ini中释牺,如果直接將krb5.conf文件更名為krb5.ini并替換krb5.ini萝衩,會(huì)出現(xiàn)文件格式問題導(dǎo)致MIT Kerberos客戶端無法正常啟動(dòng)。

[libdefaults]
default_realm = MYCDH.COM
dns_lookup_kdc = false
dns_lookup_realm = false
ticket_lifetime = 604800
renew_lifetime = 25920000
forwardable = true
default_tgs_enctypes = des-cbc-crc des3-cbc-sha1
default_tkt_enctypes = des-cbc-crc des3-cbc-sha1
permitted_enctypes = des-cbc-crc des3-cbc-sha1
udp_preference_limit = 1
kdc_timeout = 3000
[realms]
MYCDH.COM = {
kdc = kerberos.mycdh.com
admin_server = kerberos.mycdh.com
}
[domain_realm]

配置環(huán)境變量没咙,krb5.ini以及Kerberos Credential Cache File的路徑猩谊,

  • 變量名:KRB5_CONFIG,變量值:C:\ProgramData\MIT\Kerberos5\krb5.ini祭刚。
  • 變量名:KRB5CCNAME预柒,變量值:C:\temp\krb5cache。

KRB5CCNAME的路徑默認(rèn)是不存在的袁梗,因此需要在C盤下創(chuàng)建temp文件夾宜鸯,krb5cache文件則不需要?jiǎng)?chuàng)建。

配置完環(huán)境變量后遮怜,重啟計(jì)算機(jī)使其生效淋袖。

使用keytab文件登錄Kerberos

在KDC Server上創(chuàng)建一個(gè)keytab文件,

sudo kadmin.local
kadmin.local:  addprinc padluo@MYCDH.COM
WARNING: no policy specified for padluo@MYCDH.COM; defaulting to no policy
Enter password for principal "padluo@MYCDH.COM": 
Re-enter password for principal "padluo@MYCDH.COM": 
Principal "padluo@MYCDH.COM" created.
kadmin.local:  xst -norandkey -k padluo.keytab padluo@MYCDH.COM
Entry for principal padluo@MYCDH.COM with kvno 1, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:padluo.keytab.
Entry for principal padluo@MYCDH.COM with kvno 1, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:padluo.keytab.
Entry for principal padluo@MYCDH.COM with kvno 1, encryption type des3-cbc-sha1 added to keytab WRFILE:padluo.keytab.
Entry for principal padluo@MYCDH.COM with kvno 1, encryption type arcfour-hmac added to keytab WRFILE:padluo.keytab.
Entry for principal padluo@MYCDH.COM with kvno 1, encryption type des-hmac-sha1 added to keytab WRFILE:padluo.keytab.
Entry for principal padluo@MYCDH.COM with kvno 1, encryption type des-cbc-md5 added to keytab WRFILE:padluo.keytab.

在生成keytab文件時(shí)需要加參數(shù)-norandkey锯梁,否則會(huì)導(dǎo)致即碗,直接使用kinit padluo@MYCDH.COM初始化時(shí)會(huì)提示密碼錯(cuò)誤。

測試padluo.keytab文件陌凳,

kdestroy
sudo chmod 644 padluo.keytab
ll padluo.keytab
kinit -kt padluo.keytab padluo@MYCDH.COM
klist

在非root用戶下需要將生成的keytab文件剥懒,權(quán)限設(shè)置到644以上,否則會(huì)初始化失敗kinit: ???? while getting initial credentials或者使用sudo權(quán)限初始化合敦。

將生成的padluo.keytab文件拷貝到Windows 10/7上初橘,在CMD命令進(jìn)行初始化,

kdestroy
kinit -kt C:\padluo.keytab padluo@MYCDH.COM
klist

初始化成功充岛,在MIT Kerberos客戶端顯示保檐,


kinit初始化成功

DBeaver安裝配置

DBeaver安裝包下載地址如下,安裝為界面化操作崔梗,下一步下一步完成安裝即可夜只。

https://dbeaver.io/download/

因?yàn)镈Beaver通過JDBC的方式訪問Hive,底層也是基于Java環(huán)境蒜魄,所以這里需要在DBeaver的配置中增加JVM的參數(shù)扔亥,添加關(guān)于Kerberos相關(guān)的配置。進(jìn)入DBeaver的安裝目錄谈为,找到dbeaver.ini配置文件旅挤,在配置文件末尾增加如下配置,重新啟動(dòng)DBeaver客戶端峦阁。

-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.krb5.conf="C:\ProgramData\MIT\Kerberos5\krb5.ini"
-Dsun.security.krb5.debug=true

基于Cloudera驅(qū)動(dòng)創(chuàng)建連接

在Cloudera官網(wǎng)下載Hive JDBC驅(qū)動(dòng)包谦铃,Cloudera官網(wǎng)提供的JDBC驅(qū)動(dòng)包比較簡單只有一個(gè)jar包耘成,Hive JDBC驅(qū)動(dòng)包及其依賴包均打包在里面榔昔,但在JDBC URL的訪問方式上也做了一定的調(diào)整驹闰。地址如下,

https://www.cloudera.com/downloads/connectors/hive/jdbc/2-6-5.html

將下載的Hive JDBC Driver驅(qū)動(dòng)包解壓到本地目錄撒会,將ClouderaHiveJDBC41-2.6.2.1002解壓得到HiveJDBC41.jar驅(qū)動(dòng)包嘹朗,該驅(qū)動(dòng)包包含了HiveJDBC驅(qū)動(dòng)的依賴包。

在DBeaver中進(jìn)入驅(qū)動(dòng)設(shè)置界面诵肛,在URL模板中增加如下參數(shù):

;AuthMech=1;KrbRealm=MYCDH.COM;KrbHostFQDN={host};KrbServiceName=hive;KrbAuthType=2
DBeaver驅(qū)動(dòng)設(shè)置

AuthMech: 0無認(rèn)證屹培、1Kerberos認(rèn)證、2用戶名方式怔檩、3用戶名和密碼認(rèn)證褪秀、6使用Hadoop授權(quán)認(rèn)證

KrbRealm:你的KDC服務(wù)定義的域名

krbHostFQDN:你的HiveServer2服務(wù)的FQDN(hostname或你dns解析的域名)

KrbServiceName:HiveServer2服務(wù)的Principal默認(rèn)為hive

KrbAuthType:0表示獲取你的Subject來實(shí)現(xiàn)Kerberos認(rèn)證、1表示基于JAAS方式獲取Kerberos認(rèn)證薛训、2表示基于當(dāng)前客戶端的Tick Cache方式認(rèn)證

添加Cloudera提供的Hive JDBC驅(qū)動(dòng)媒吗,驅(qū)動(dòng)類需要指定為"com.cloudera.hive.jdbc41.HS2Driver"。

點(diǎn)擊確定完成驅(qū)動(dòng)設(shè)置乙埃,填寫替換{host}變量的主機(jī)地址闸英,

點(diǎn)擊測試連接,

測試連接結(jié)果

完成連接創(chuàng)建后即可正常訪問Kerberos環(huán)境下的Hive庫介袜。

訪問Kerberos環(huán)境下的Hive庫

基于Hive原生驅(qū)動(dòng)創(chuàng)建連接

基于Hive原生驅(qū)動(dòng)創(chuàng)建連接的方式暫未進(jìn)行測試甫何。

最后,推薦極客時(shí)間新出的一個(gè)【大規(guī)模數(shù)據(jù)處理實(shí)戰(zhàn)】的專欄遇伞,了解Google一線工程師的大數(shù)據(jù)架構(gòu)實(shí)戰(zhàn)經(jīng)驗(yàn)辙喂,深入掌握實(shí)用的大規(guī)模數(shù)據(jù)處理技術(shù)。


大規(guī)模數(shù)據(jù)處理實(shí)戰(zhàn)

微信公眾號(hào)「padluo」鸠珠,分享數(shù)據(jù)科學(xué)家的自我修養(yǎng)加派,既然遇見,不如一起成長跳芳。

數(shù)據(jù)分析

讀者交流電報(bào)群

https://t.me/sspadluo


知識(shí)星球交流群

知識(shí)星球讀者交流群
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芍锦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子飞盆,更是在濱河造成了極大的恐慌娄琉,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吓歇,死亡現(xiàn)場離奇詭異孽水,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)城看,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門女气,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人测柠,你說我怎么就攤上這事炼鞠≡道模” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵谒主,是天一觀的道長朝扼。 經(jīng)常有香客問我,道長霎肯,這世上最難降的妖魔是什么擎颖? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮观游,結(jié)果婚禮上搂捧,老公的妹妹穿的比我還像新娘。我一直安慰自己懂缕,他們只是感情好异旧,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著提佣,像睡著了一般吮蛹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拌屏,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天潮针,我揣著相機(jī)與錄音,去河邊找鬼倚喂。 笑死每篷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的端圈。 我是一名探鬼主播焦读,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼舱权!你這毒婦竟也來了矗晃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤宴倍,失蹤者是張志新(化名)和其女友劉穎张症,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鸵贬,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡俗他,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了阔逼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兆衅。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出羡亩,到底是詐尸還是另有隱情摩疑,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布夕春,位于F島的核電站未荒,受9級(jí)特大地震影響专挪,放射性物質(zhì)發(fā)生泄漏及志。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一寨腔、第九天 我趴在偏房一處隱蔽的房頂上張望速侈。 院中可真熱鬧,春花似錦迫卢、人聲如沸倚搬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽每界。三九已至,卻和暖如春家卖,著一層夾襖步出監(jiān)牢的瞬間眨层,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工上荡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留趴樱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓酪捡,卻偏偏與公主長得像叁征,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子逛薇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容