數新網絡,讓每個人享受數據的價值https://xie.infoq.cn/link?target=https%3A%2F%2Fwww.datacyber.com%2F
概述
?本文將介紹在華為云 FusionInsight MRS(Managed Relational Service)的Kerberos環境中,如何使用Java和DBeaver實現遠程連接Hive的方法。?
JAVA 方式
一、測試環境信息
1.?MRS 3.1.5 安全集群(開啟kerberos)
2.?windows 11 64位,需要和MRS集群網絡互通
3.?IntelliJ IDEA 2022.3.2
二、創建角色和用戶
1.?登錄MRS管理控制臺頁面。
2.?單擊"集群列表",在"現有集群"列表,單擊指定的集群名稱,進入集群信息頁面。
3.?單擊“集群管理頁面”后的"前往Manager",打開Manager頁面。
a.?在彈性公網IP下拉框中選擇可用的彈性公網IP或單擊“管理彈性公網IP”購買彈性公網IP,并進行綁定。
b.?勾選"我確認xx.xx.xx.xx為可信任的公網訪問IP,并允許從該IP訪問MRS Manager頁面",如下圖:
4.?點擊"確定",進入Manager登錄頁面。
5.?輸入創建集群時默認的用戶名"admin"及設置的密碼,點擊"登錄"進入Manager頁面。
6.?在Manager 界面選擇"系統 > 權限 > 角色",如下圖:
7.?點擊"添加角色",如下圖:
填寫如下信息:
·?角色名稱:例如mrrole。
·?配置資源權限:選擇“HDFS > 文件系統 ”,勾選“權限”列的“讀”、“寫”和“執行”,勾選完全后,不要單擊確認,要單擊如下圖的待操作的集群名,再進行后面權限的選擇,其余產品也是類似操作,直至全部產品權限都已選擇完成。
8.?選擇“系統 > 權限 > 用戶組 > 添加用戶組”,為樣例工程創建一個用戶組,例如mrgroup,如下圖:
9.?選擇“系統 > 權限 > 用戶 > 添加用戶”,為樣例工程創建一個用戶,最后點擊"確定"完成用戶創建。如下圖:
·?用戶名:例如test,當需要執行Hive程序時,請設置用戶名為“hiveuser”。
·?用戶類型:“人機”用戶。
·?密碼:輸入密碼(特別注意該密碼在后面運行程序時要用到)
·?用戶組:加入用戶組mrgroup和supergroup。
·?主組:設置其“主組”為supergroup,
·?角色:綁定角色mrrole取得權限。
10.?選擇“系統 > 權限 > 用戶”,選擇新建用戶test,選擇“更多 >下載認證憑據”,保存后解壓得到用戶的keytab文件與krb5.conf文件。
11.?ECS 登錄kerberos用戶,第一次登錄會默認重置密碼的
注意:
·?如果在部署MRS服務的ECS上使用密碼登錄需要先進行密碼重置,重置密碼不可以與添加用戶的一致。重置過后需重新下載認證憑證。
三、準備工作
1.?下載hive客戶端配置
a.?登錄MRS管理控制臺頁面
b.?單擊“集群列表 > 現有集群”,在集群列表中單擊指定的集群名稱,進入集群信息頁面。
c.?輸入賬號密碼進入Manager頁面
d.?選擇“主頁 -> hive -> 更多-下載客戶端”
e.?選擇完成客戶端 ->x86_64-> 確定,下載到本地windows環境下
f.?下載完成后打開此文件
g.?根據如下圖片中的目錄將jdbc文件復制到本地
2.?下載keytab 文件
a.?登錄MRS管理控制臺頁面
b.?單擊“集群列表 > 現有集群”,在集群列表中單擊指定的集群名稱,進入集群信息頁面。
c.?輸入賬號密碼進入Manager頁面
d.?選擇系統->更多->下載認證憑證,下載到本地windows環境下
e.?將下載到本地的krb5.conf 文件內的地址修改為外網地址
3.?查看系統生成principal
a.?登錄到MRS集群ECS服務器,執行如下命令
b.?執行如下命令,查看系統principal?
4.?idea 引入本地依賴
a.打開創建好的maven項目,創建lib 文件夾,將JDBC文件夾內的jar放入lib目錄下
b.?點擊flie -> Project Stucture-> Moduies
c.?選擇文件夾然后點擊OK
d.?勾選上選擇的文件,然后點擊apply->ok
e.?加載完成
5.?idea 引入配置文件
a.?將修改完成的krb5.conf 導入至resources
b.?將user.keytab導入至resources
四、JAVA 代碼示例
1.?華為云使用代碼連接kerberos Hive URL 示例
a.?HiveServer2 連接URL示例
o {host}:彈性公網地址或內網地址
o {port}:hiveserver2 端口,默認10000
o {yousystemuser}:創建MRS集群系統為每個產品生成的principal,查看方式參考"系統生成principal"
o {youruser}:在"創建角色和用戶"創建的用戶名稱(注:無需跟realm也可以)
o {yourkeytabpath}:自己用戶的keytab文件路徑,keytab下載方式參考"下載keytab文件"
b.?Zookeeper 連接URL示例
o {host}:彈性公網地址或內網地址
o {port}:zookeeper 端口,默認2181
o {yousystemuser}:創建MRS集群系統為每個產品生成的principal,查看方式參考"系統生成principal"
o {youruser}:在"創建角色和用戶"創建的用戶名稱(注:無需跟realm也可以)
o {yourkeytabpath}:自己用戶的keytab文件路徑,keytab下載方式參考"下載keytab文件"
2.?自測代碼示例如下
a.?hiveServer2 方式
·?執行結果如下
b.?zookeeper 連接方式
注意:
o?zookeeper連接方式必須以內網進行連接,購買華為云ECS Windows 服務器或打jar包形式
o?上傳krb5.conf &user.keytab文件到 ECS服務器上,代碼中地址進行修改
·?執行結果如下
DBeaver 方式
一、測試環境信息
1.?MRS 3.1.5 安全集群(開啟kerberos)
2.?windows 11 64位,需要和MRS集群網絡互通
3.?DBeaver 21.3.0版本 64bit
4.?MIT 4.1 版本 64bit
二、準備工作
1.?MIT 安裝
a.?在官網下載對應的MIT版本,kerberos MIT官網地址
b.?下載完成后打開,點擊"Next"
c.?選擇同意協議并點擊"Next"
d.?選擇自定義安裝
e.?點擊 Browse-> look in -> ok-> Next
f.?取消開機自啟->Next
g.?點擊"Install",開始安裝Kerberos
h.?等待安裝結束后點擊"Finish"
i.?選擇Yes,重啟完成后進行下一步
2.?配置環境變量
a.?將修改完成的krb5.conf 文件重命名為krb5.ini,并放置某一路徑下(例:D:\softwarePackage\kerberos)
b.?配置環境變量
c.?進入到安裝MIT的bin目錄下,進行認證測試
3.?DBeaver安裝
a.?官網下載對應的DBeaver版本,DBeaver官網
b.?打開下載的exe文件->選擇語言模式->ok->下一步
c.?選擇我接受
d.?選擇多用戶使用->下一步
e.?選擇語言->ok
f.?點擊下一步->我接受
g.?選擇安裝的組件,DBeaver 21.3 版本java版本需要≥11,如果本機java環境大于11的話取消勾選"Include Java","DBeaver Community"是必選項,然后點擊下一步
h.?選擇部署的目標文件夾,然后點擊下一步
i.?選擇安裝DBeaver 菜單欄名稱(默認即可)->安裝
j.?等待安裝完成,勾選"Create Desktop Shortcut"(桌面快捷方式)->點擊完成
k.?安裝完成后,進入DBeaver安裝路徑,在dbeaver.ini追加如下內容,然后保存退出,配置完成后需要重啟DBeaver
注意:java.security.krb5.conf路徑替換為自己的主機所在的地址
三、DBeaver 創建連接
1.?打開DBeaver->創建新連接->選擇Hive->點擊下一步
2.?編輯驅動設置
3.?配置URL模板
a.?URL 模板如下
o?{yousystemuser} 替換自己MRS集群的principal,查找方式參考"查看系統生成principal"
o {port}:替換為自己Hive端口
b.?將URL模板填充至標紅部分
4.?選擇需要引入的jar,下載步驟參考"下載hive客戶端配置"
5.?點擊找到類->確定
6.?填充外網地址&數據庫名稱,然后測試鏈接