Kerberos使用
更新時間 2023-11-30 02:41:56
最近更新時間: 2023-11-30 02:41:56
分享文章
本章節主要介紹操作類問題中有關Kerberos使用的問題。
已創建的MRS集群如何修改Kerberos認證的開啟狀態?
MRS服務暫不支持集群創建完成后手動開啟和關閉Kerberos服務。
如需更換Kerberos認證狀態,建議重新創建MRS集群,然后進行數據遷移。
Kerberos認證服務的端口有哪些?
Kerberos認證服務的常用端口有21730(TCP)、21731(TCP/UDP)、21732(TCP/UDP)。
如何避免Kerberos認證過期?
- 對于JAVA應用
在連接HBase、HDFS或者其他大數據組件前,先調用loginUserFromKeytab()創建UGI,然后啟動一個定時線程進行檢查是否過期并在過期前重新登錄。
private static void startCheckKeytabTgtAndReloginJob() {
//10分鐘循環,達到距離到期時間一定范圍就會更新憑證
ThreadPool.updateConfigThread.scheduleWithFixedDelay(() -> {
try {
UserGroupInformation.getLoginUser().checkTGTAndReloginFromKeytab();
logger.warn("get tgt:{}", UserGroupInformation.getLoginUser().getTGT());
logger.warn("Check Kerberos Tgt And Relogin From Keytab Finish.");
} catch (IOException e) {
logger.error("Check Kerberos Tgt And Relogin From Keytab Error", e);
}
}, 0, 10, TimeUnit.MINUTES);
logger.warn("Start Check Keytab TGT And Relogin Job Success.");
}
- 對于Shell客戶端方式執行的任務
1.先執行kinit命令認證用戶。
2.通過操作系統定時任務或者其他定時任務方式定時執行kinit命令認證用戶。
3.提交作業執行大數據任務。
- 對于Spark作業
通過spark-shell、spark-submit、spark-sql方式提交作業,可以直接在命令行中指定Keytab和Principal以獲取認證,定期更新登錄憑證和授權tokens,避免認證過期。
例如:
spark-shell --principal spark2x/hadoop.<系統域名>@<系統域名> --keytab ${BIGDATA_HOME}/FusionInsight_Spark2x_XXX/install/FusionInsight-Spark2x-2.4.5/keytab/spark2x/SparkResource/spark2x.keytab --master yarn