小編給大家分享一下CDSW在Session中運(yùn)行代碼超過一次就報(bào)錯怎么辦,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)建站是一家以網(wǎng)站建設(shè)公司、網(wǎng)頁設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、網(wǎng)站推廣、小程序App開發(fā)等移動開發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為iso認(rèn)證等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開發(fā)服務(wù)。
在CDSW中啟動一個(gè)Session然后運(yùn)行代碼,第一次能夠正常運(yùn)行,在第一次運(yùn)行完成后不關(guān)閉Session,在同一個(gè)Session中再次運(yùn)行代碼,此時(shí)就會出現(xiàn)報(bào)錯,主要的報(bào)錯信息為“Delegation Token can be issued only with kerberos or web authentication”,報(bào)錯的截圖如下:
由于這個(gè)報(bào)錯出現(xiàn)在CDSW服務(wù)中,因此首先需要確認(rèn)是CDSW側(cè)導(dǎo)致的問題還是CDH側(cè)導(dǎo)致的問題。
針對報(bào)錯的Session,到CDSW所在服務(wù)器通過kubectl命令獲取到Session的日志,在日志中并無報(bào)錯的信息,日志截圖如下:
在Session日志中沒有查看到有效信息的情況下,在啟動Session的Terminal中執(zhí)行了兩次同樣的代碼,第二次依然報(bào)錯;在這之后,在CDSW的Master節(jié)點(diǎn),通過啟動pyspark-shell命令行的方式提交了兩次同樣的代碼,第二次和之前一樣報(bào)錯,通過上面的測試,我們可以得出該問題與CDSW無關(guān),由于報(bào)錯的作業(yè)類型是PySpark,因此我們將問題的重點(diǎn)轉(zhuǎn)移到CDH集群的Spark上,目前報(bào)錯的環(huán)境使用的Spark版本是Spark2.2.0-cloudera1,下面針對Spark來分析該問題。
通過報(bào)錯信息分析是與認(rèn)證相關(guān)的報(bào)錯,通過查詢資料在Apache官網(wǎng)上找到了相關(guān)的jira,編號為SPARK-21890,鏈接如下:
https://issues.apache.org/jira/browse/SPARK-21890
該jira描述Spark Client已經(jīng)擁有了hdfs token,但是Spark Client本身無法感知到該hdfs token已獲取,因此還是會繼續(xù)請求,同時(shí)hdfs credentials provider對于這種已有憑據(jù)的請求不會進(jìn)行任何處理,因此導(dǎo)致了Delegation Token的報(bào)錯,詳情可以查閱上面的jira鏈接,同時(shí)該jira影響的版本是Spark2.2.0,與行內(nèi)使用的Spark版本相符,在與Support溝通后,確認(rèn)了問題是該jira導(dǎo)致。
基于該問題是Spark版本的bug導(dǎo)致,因此從根本上解決該問題的方式是升級行內(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升級上來的,因此還在繼續(xù)使用該版本的Spark,建議將行內(nèi)的Spark版本升級到Spark2.4,一方面來說Spark2.4是Spark2的最高版本,相比Spark2.2多了新特性以及一些bug的修復(fù),同時(shí)行內(nèi)之前也有業(yè)務(wù)人員提出過更高版本Spark的需求,另一方面CDH6以及目前CDP7.1.4打包的都是Spark2.4。
CDH中Spark各版本對應(yīng)的fix可以參考下面的鏈接:
https://docs.cloudera.com/documentation/spark2/latest/topics/spark2_fixed_issues.html
在進(jìn)行Spark版本升級之前,如果遇到多次執(zhí)行代碼時(shí)遇到該報(bào)錯,那么停止當(dāng)前Session后,重新打開一個(gè)新的Session再運(yùn)行代碼即可。
以上是“CDSW在Session中運(yùn)行代碼超過一次就報(bào)錯怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
本文標(biāo)題:CDSW在Session中運(yùn)行代碼超過一次就報(bào)錯怎么辦
文章鏈接:http://m.newbst.com/article42/gohehc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、用戶體驗(yàn)、網(wǎng)站收錄、外貿(mào)建站、域名注冊、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)