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