大數(shù)據(jù)問題排查之開啟 Kerberos 后無法訪問 Hiveserver2 等服務(wù)的 Webui
本文轉(zhuǎn)載自微信公眾號「明哥的IT隨筆」,作者IT明哥。轉(zhuǎn)載本文請聯(lián)系明哥的IT隨筆公眾號。
1 前言
大家好,我是明哥!
在博文“從技術(shù)視角看大數(shù)據(jù)行業(yè)的發(fā)展趨勢”中,我們提到大數(shù)據(jù)的一個發(fā)展趨勢是日益重視數(shù)據(jù)安全。在數(shù)據(jù)安全上,有四個方面的問題需要解決,即 3A + 1E:
從技術(shù)視角看大數(shù)據(jù)行業(yè)的發(fā)展趨勢
- 3A 是指 authentication, authorization 和 audit 即認(rèn)證,授權(quán)和審計,分別解決了用戶身份校驗(yàn),用戶權(quán)限校驗(yàn),事后審計監(jiān)督的問題;
- 1E 指的是 encryption 即加密,包括對靜態(tài)數(shù)據(jù)的加密和對傳輸過程中數(shù)據(jù)的加密。
- 在3A+1E中,authentication 用戶認(rèn)證是基礎(chǔ)。試想,如果用戶身份驗(yàn)證沒有做好,那么就可能冒用別人的身份,安全也就無從談起了;
- 在大數(shù)據(jù)領(lǐng)域,解決 authentication 用戶認(rèn)證問題,事實(shí)上的標(biāo)準(zhǔn)是 Kerberos, 常見的主流大數(shù)據(jù)框架,都支持 kerberos 認(rèn)證方式。
- 在實(shí)際工作中,幾乎所有的金融行業(yè)和保險行業(yè)的大數(shù)據(jù)集群都啟用了 kerberos, 這一趨勢也在快速蔓延到電信行業(yè),制造行業(yè)等各個行業(yè);
- 而同時由于一些小伙伴對 kerberos 不太熟悉,使用過程中由于姿勢不對,也遇到了各種五花八門的問題。
有鑒于此,筆者在大數(shù)據(jù)問題排查系列中,準(zhǔn)備專門開一個 kerberos問題排查子序列,專門講述常見的 kerberos 問題與解決方法。
本文是該子序列第一篇,以下是正文。
2. 問題概述
大數(shù)據(jù)集群開啟kerberos后,一些服務(wù)如 HDFS/YARN/HIVESERVER2 的 webui無法訪問, 如下圖所示,分別對應(yīng) chrome 和 firefox 訪問 hdfs webui的報錯:
chrome-error
firefox-error
3 問題原因
通過查看 HDFS/YARN 服務(wù)的配置,可以發(fā)現(xiàn)開啟了 "Enable Kerberos Authentication for HTTP Web-Consoles", 所以此時因?yàn)橛脩敉ㄟ^瀏覽器訪問 WEBUI 時會因?yàn)闆]有認(rèn)證無法訪問;
通過查看服務(wù)的后臺日志,也能確認(rèn)是用戶認(rèn)證的問題,以下是相關(guān)日志截圖:圖片
4 問題解決
解決方法1:可以關(guān)掉 hdfs/yarn/hive 的 “Enable Kerberos Authentication for HTTP Web-Consoles”,需要注意,hive 中該配置項需要在高級配置段中設(shè)置,如下圖所示:
hdfs-config
yarn-config
hive-config
解決方法2:如果安全管理很嚴(yán)格,不能采用上述方法1,此時可以安裝個 kerberos windows 客戶端,在使用瀏覽器訪問 webui前,先在 kerberos windows 客戶端通過用戶名和密碼的認(rèn)證,然后就可以使用瀏覽器正常訪問 webui了,需要注意 chrome瀏覽器的相關(guān)配置比較復(fù)雜,建議使用 firefox 瀏覽器。相關(guān)截圖如如下圖所示:
MIT Kerberos windows 客戶端
Initialize kerberos ticket
hdfs web ui under kerberos
hiveserver2 web ui under kerberos
5 知識總結(jié)
大數(shù)據(jù)領(lǐng)域,解決數(shù)據(jù)安全中用戶認(rèn)證 authentication 問題,事實(shí)上的標(biāo)準(zhǔn)是使用 kerberos;
一旦大數(shù)據(jù)服務(wù)開啟了 kerberos 安全認(rèn)證,默認(rèn)情況下其 webui 頁面的訪問,同樣需要通過 kerberos 認(rèn)證才能訪問;
windows下kerberos 安全認(rèn)證,可以使用 MIT Kerberos 的 windows 客戶端,輸入principal和對應(yīng)的密碼經(jīng)過認(rèn)證后,就可以使用瀏覽器正常訪問開啟了 kerberos 安全的大數(shù)據(jù)服務(wù)的 web ui了,且瀏覽器推薦使用 firefox;
也可以關(guān)閉開啟了 kerberos 安全認(rèn)證的大數(shù)據(jù)服務(wù)的 webui 的 http 認(rèn)證,即“ disable Kerberos Authentication for HTTP Web-Consoles”,此時瀏覽器訪問其 webui 不需要經(jīng)過 kerberos 安全認(rèn)證;