溫馨提示×

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

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

CDSW在Session中運(yùn)行代碼超過一次就報(bào)錯(cuò)怎么辦

發(fā)布時(shí)間:2021-12-14 09:29:25 來源:億速云 閱讀:97 作者:小新 欄目:大數(shù)據(jù)

小編給大家分享一下CDSW在Session中運(yùn)行代碼超過一次就報(bào)錯(cuò)怎么辦,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

問題描述      

在CDSW中啟動(dòng)一個(gè)Session然后運(yùn)行代碼,第一次能夠正常運(yùn)行,在第一次運(yùn)行完成后不關(guān)閉Session,在同一個(gè)Session中再次運(yùn)行代碼,此時(shí)就會(huì)出現(xiàn)報(bào)錯(cuò),主要的報(bào)錯(cuò)信息為“Delegation Token can be issued only with kerberos or web authentication”,報(bào)錯(cuò)的截圖如下:

CDSW在Session中運(yùn)行代碼超過一次就報(bào)錯(cuò)怎么辦

問題分析過程    

   

   

   

由于這個(gè)報(bào)錯(cuò)出現(xiàn)在CDSW服務(wù)中,因此首先需要確認(rèn)是CDSW側(cè)導(dǎo)致的問題還是CDH側(cè)導(dǎo)致的問題。

針對(duì)報(bào)錯(cuò)的Session,到CDSW所在服務(wù)器通過kubectl命令獲取到Session的日志,在日志中并無報(bào)錯(cuò)的信息,日志截圖如下:

CDSW在Session中運(yùn)行代碼超過一次就報(bào)錯(cuò)怎么辦

在Session日志中沒有查看到有效信息的情況下,在啟動(dòng)Session的Terminal中執(zhí)行了兩次同樣的代碼,第二次依然報(bào)錯(cuò);在這之后,在CDSW的Master節(jié)點(diǎn),通過啟動(dòng)pyspark-shell命令行的方式提交了兩次同樣的代碼,第二次和之前一樣報(bào)錯(cuò),通過上面的測(cè)試,我們可以得出該問題與CDSW無關(guān),由于報(bào)錯(cuò)的作業(yè)類型是PySpark,因此我們將問題的重點(diǎn)轉(zhuǎn)移到CDH集群的Spark上,目前報(bào)錯(cuò)的環(huán)境使用的Spark版本是Spark2.2.0-cloudera1,下面針對(duì)Spark來分析該問題。

通過報(bào)錯(cuò)信息分析是與認(rèn)證相關(guān)的報(bào)錯(cuò),通過查詢資料在Apache官網(wǎng)上找到了相關(guān)的jira,編號(hào)為SPARK-21890,鏈接如下:

https://issues.apache.org/jira/browse/SPARK-21890

該jira描述Spark Client已經(jīng)擁有了hdfs token,但是Spark Client本身無法感知到該hdfs token已獲取,因此還是會(huì)繼續(xù)請(qǐng)求,同時(shí)hdfs credentials provider對(duì)于這種已有憑據(jù)的請(qǐng)求不會(huì)進(jìn)行任何處理,因此導(dǎo)致了Delegation Token的報(bào)錯(cuò),詳情可以查閱上面的jira鏈接,同時(shí)該jira影響的版本是Spark2.2.0,與行內(nèi)使用的Spark版本相符,在與Support溝通后,確認(rèn)了問題是該jira導(dǎo)致。

問題處理結(jié)論      

基于該問題是Spark版本的bug導(dǎo)致,因此從根本上解決該問題的方式是升級(jí)行內(nèi)的Spark版本,目前行內(nèi)所使用的Spark2.2.0是一個(gè)比較老的版本,該版本在CDH5.16.2上其實(shí)已經(jīng)不支持了,參考下面鏈接:

https://docs.cloudera.com/documentation/spark2/latest/topics/spark2_requirements.html

目前行內(nèi)的集群由于是從5.13升級(jí)上來的,因此還在繼續(xù)使用該版本的Spark,建議將行內(nèi)的Spark版本升級(jí)到Spark2.4,一方面來說Spark2.4是Spark2的最高版本,相比Spark2.2多了新特性以及一些bug的修復(fù),同時(shí)行內(nèi)之前也有業(yè)務(wù)人員提出過更高版本Spark的需求,另一方面CDH6以及目前CDP7.1.4打包的都是Spark2.4。

CDH中Spark各版本對(duì)應(yīng)的fix可以參考下面的鏈接:

https://docs.cloudera.com/documentation/spark2/latest/topics/spark2_fixed_issues.html

在進(jìn)行Spark版本升級(jí)之前,如果遇到多次執(zhí)行代碼時(shí)遇到該報(bào)錯(cuò),那么停止當(dāng)前Session后,重新打開一個(gè)新的Session再運(yùn)行代碼即可。

以上是“CDSW在Session中運(yùn)行代碼超過一次就報(bào)錯(cuò)怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(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)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI