溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行多次修改CDH集群關(guān)聯(lián)的Kerberos域后Spark無法正常獲得短名稱映射的問題排查

發(fā)布時(shí)間:2021-12-14 15:11:42 來源:億速云 閱讀:140 作者:柒染 欄目:大數(shù)據(jù)

如何進(jìn)行多次修改CDH集群關(guān)聯(lián)的Kerberos域后Spark無法正常獲得短名稱映射的問題排查,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

環(huán)境:

CDH 6.3.1

Oracle JDK 1.8.0_181

已開啟Kerberos


癥狀表現(xiàn):

該集群曾經(jīng)更換了關(guān)聯(lián)的Kerberos域名稱,由XY.COM.CN改為了XY.COM。

現(xiàn)在又重新進(jìn)行了更換,由XY.COM重新改為了XY.COM.CN。

修改完成后,集群重啟,Cloudera Manager(以下簡(jiǎn)稱CM)顯示一切正常。

但是在使用Spark的過程中,發(fā)現(xiàn)在非Kerberos服務(wù)端的節(jié)點(diǎn),執(zhí)行spark的命令行工具(包括spark-shell、spark-submit等),就直接報(bào)錯(cuò)。提示獲取短名稱的規(guī)則不存在:

[main] util.KerberosName(KerberosName.java:getShortName(401)) - No auth_to_local rules applied to cloudera-scm/admin@XY.COM does not exist

 


解決過程:

從報(bào)錯(cuò)信息來看,spark-shell仍然嘗試用之前的Kerberos域名來進(jìn)行短名稱映射。

可以看到報(bào)錯(cuò)信息中,getShortName方法還是會(huì)去找Kerberos域“XY.COM”對(duì)應(yīng)的解析規(guī)則;然而現(xiàn)在這個(gè)Kerberos域XY.COM實(shí)際已經(jīng)不存在,現(xiàn)在的規(guī)則是對(duì)應(yīng)XY.COM.CN的,所以自然無法對(duì)cloudera-scm/admin@XY.COM應(yīng)用有效的短名稱規(guī)則。


CDH中,spark的命令行工具都是默認(rèn)讀取CM下發(fā)的配置文件,那么首先推測(cè)的情況,就有可能是集群關(guān)聯(lián)的Kerberos域修改后,CM沒有成功下發(fā)新的客戶端配置。

嘗試在CM界面刷新和重新部署各個(gè)服務(wù)的客戶端。但是沒有效果。還是會(huì)報(bào)同樣的錯(cuò)誤。


此時(shí)推斷是CM本身在應(yīng)對(duì)已經(jīng)實(shí)施Kerberos安全的集群的Kerberos域修改時(shí),下發(fā)客戶端配置的部分存在一些問題,導(dǎo)致沒有成功分發(fā)正確的配置文件。

那么我們必須找到一個(gè)能觸發(fā)涉及Kerberos主體映射相關(guān)配置文件下發(fā)的選項(xiàng),修改后重新進(jìn)行下發(fā),讓正確的配置覆蓋目前節(jié)點(diǎn)上的客戶端配置文件。

打開CM,找到HDFS服務(wù),找到配置項(xiàng)中的“將 Kerberos 主體映射到短名稱的其他規(guī)則”。

該選項(xiàng)本來是留給不符合標(biāo)準(zhǔn)Kerberos命名方式的主體自定義短名稱映射用的。正常情況下,只要是標(biāo)準(zhǔn)的Kerberos主體名稱形式(例如hive/manager1@XY.COM.CN,或者h(yuǎn)ive@XY.COM.CN),這個(gè)選項(xiàng)的默認(rèn)值“DEFAULT”就能正確拿到用戶名(例如hive/manager1@XY.COM.CN會(huì)被最終映射為短名稱hive),不需要我們手工再指定。

因?yàn)镠DFS是所有其他服務(wù)組件都要依賴的核心組件,我們通過這個(gè)選項(xiàng)的修改,肯定會(huì)觸發(fā)所有涉及認(rèn)證的服務(wù)的客戶端部署。

填入自定義映射規(guī)則的內(nèi)容,進(jìn)行保存,這個(gè)自定義映射規(guī)則實(shí)際等同于“DEFAULT”的效果:

RULE:[1:$1@$0](.*@\XY.COM.CN)s/@\XY.COM.CN//RULE:[2:$1@$0](.*@\XY.COM.CN)s/@\XY.COM.CN//

如何進(jìn)行多次修改CDH集群關(guān)聯(lián)的Kerberos域后Spark無法正常獲得短名稱映射的問題排查

點(diǎn)擊保存。提示重啟服務(wù),這時(shí)勾選上重新部署客戶端。

重啟完成后,重新運(yùn)行spark-shell,一切正常!問題解決。

看完上述內(nèi)容,你們掌握如何進(jìn)行多次修改CDH集群關(guān)聯(lián)的Kerberos域后Spark無法正常獲得短名稱映射的問題排查的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI