Spark on hdp yarn cluster踩坑(timeline-service)

部署方案

  • spark官網(wǎng)下載基于hdp的Hadoop版本的pre-built的spark安裝包

  • 在機(jī)器上解壓,并在spark-env中配置HADOOP_CONF_DIR回挽,SPARK_CONF_DIR趾娃,spark-defaults中添加相關(guān)配置

     為方便使用扔水,設(shè)置HADOOP_CONF_DIR指向目錄為/usr/hdp/current/hadoop-client/conf目錄
    

異常

使用./spark-shell --master yarn 啟動(dòng)sparkshell終端舞骆,拋出異常ClassNotFound :com/sun/jersey/api/client/config/ClientConfig如下:


D3033034@9C7B674C.7B52C65A.png.jpg

在jar目錄下搜索發(fā)現(xiàn)廷没,確實(shí)不存在該類

 [ocsp@ocdt31 jars]$ pwd
/data/cyq/spark-2.3.0-bin-hadoop2.7/jars
[ocsp@ocdt31 jars]$ grep "ClientConfig"  ./ -Rn
[ocsp@ocdt31 jars]$ 

于是網(wǎng)上查詢發(fā)現(xiàn)該類在jersey-client包1.9版本中存在糊饱,而spark當(dāng)前依賴的的jersery版本為2.2,jersey版本升級(jí)后颠黎,剔除了相關(guān)jar包另锋。然而此處的調(diào)用是初始化yarnclientimpl時(shí),調(diào)用狭归,顯然是yarn服務(wù)使用的夭坪。此處說明存在jar包沖突問題。只好將yarn服務(wù)中的jersey-client的jar包放在spark的jars目錄下过椎。

再次啟動(dòng)sparkshell命令室梅,拋出異常“com/sun/jersey/api/client/config/ClientConfig”疚宇,如下:


6E912E64@FD27C231.7B52C65A.png.jpg

在jar目錄下搜索發(fā)現(xiàn)亡鼠,確實(shí)不存在該類

[ocsp@ocdt31 jars]$ pwd
/data/cyq/spark-2.3.0-bin-hadoop2.7/jars
[ocsp@ocdt31 jars]$ grep "FeaturesAndProperties"  ./ -Rn
[ocsp@ocdt31 jars]$ 

只好將yarn服務(wù)中的jersey-core的jar包放在spark的jars目錄下。

再次啟動(dòng)./spark-shell --master yarn 啟動(dòng)成功敷待。然而查看spark應(yīng)用原生頁面時(shí)發(fā)現(xiàn)點(diǎn)擊executor頁面無法打開间涵,且在driver中拋出異常:

3302915E@6210844B.7B52C65A.png.jpg

多次點(diǎn)擊則拋出空指針異常,如下:


6C5FD42F@A57E7F06.7B52C65A.png.jpg

分析后榜揖,發(fā)現(xiàn)jersery-core的1.9版本中存在ws相關(guān)j類勾哩,與javax.ws.rs-api-2.0.1.jar中的類類名一致抗蠢。classloader加載時(shí)加載了jerseyclient中的類,由于版本原因思劳,導(dǎo)致運(yùn)行異常迅矛。


屏幕快照 2018-04-06 上午12.52.58.png

屏幕快照 2018-04-06 上午12.53.24.png

沖突點(diǎn)

如果使用jersey-client,jersey-core的1.9版本敢艰,可以使應(yīng)用運(yùn)行起來诬乞,但由于jar包沖突,導(dǎo)致executors頁面無法查看钠导,這對(duì)分析應(yīng)用有較大麻煩震嫉。
如果不使用jersey-client,jersey-core 1.9版本,則應(yīng)用啟動(dòng)異常牡属。

尷尬了票堵。。逮栅。

問題再分析

基于如上分析悴势,spark應(yīng)用啟動(dòng)運(yùn)行有問題,還怎么好好的玩耍呢措伐。

可是特纤,我是直接取的spark社區(qū)2.3基于hadoop2.7版本編譯好的包,如果無法使用侥加,這還得了捧存。

于是使用社區(qū)的spark在社區(qū)的hadoop上運(yùn)行,運(yùn)行成功担败。于是懷疑問題出在配置上面昔穴。然而是哪個(gè)配置呢?分析堆椞崆埃可以發(fā)現(xiàn)吗货,yarnclientimpl初始化時(shí),調(diào)用的createTimelineClient服務(wù)時(shí)異常狈网,查看HADOOP_CONF_DIR下的yarn-site配置文件宙搬,果然有yarn.timeline-service.enabled參數(shù),且該值配置為true拓哺。 查看yarnclient的源碼發(fā)現(xiàn)害淤,確實(shí)通過讀取該值

if (conf.getBoolean(YarnConfiguration.TIMELINE_SERVICE_ENABLED,
    YarnConfiguration.DEFAULT_TIMELINE_SERVICE_ENABLED)) {
  timelineServiceEnabled = true;
  timelineClient = createTimelineClient();
  timelineClient.init(conf);
  timelineDTRenewer = getTimelineDelegationTokenRenewer(conf);
  timelineService = TimelineUtils.buildTimelineTokenService(conf);
}

于是將yarn.timeline-service.enabled值設(shè)置為false,并刪除之前copy到SPARK_HOME/jars目錄下的jersey1.9相關(guān)jar包拓售。啟動(dòng)./spark-shell --master yarn 啟動(dòng)成功窥摄,executor頁面可以正常查看。

至此spark on hdp 啟動(dòng)成功础淤。且頁面查看正常崭放。

PS : 最后一問

使用社區(qū)Spark在hdp的yarn中運(yùn)行起初設(shè)置的yarn.timeline-service.enable為ture時(shí)哨苛,由于jersey版本不兼容問題,啟動(dòng)是異常的币砂, 那使用hdp的spark2可以在yarn上運(yùn)行建峭,為何是正常的呢?

顯然在配置yarn.timeline-service.enable為ture時(shí)决摧,根據(jù)yarnclientimpl的代碼亿蒸,一定會(huì)走到createTImelineclient方法,此時(shí)初始化時(shí)也會(huì)遭遇類不存在的問題從而導(dǎo)致啟動(dòng)失敗掌桩, 然而現(xiàn)實(shí)是hdp的spark客戶端提交應(yīng)用時(shí)边锁,運(yùn)行是正常的。波岛。茅坛。。

于是開始懷疑hdp做過某種修改则拷,查看hdp的源碼發(fā)現(xiàn)在submitApp之前贡蓖,強(qiáng)制設(shè)置yarn.timeline-service.enable為false。

屏幕快照 2018-04-05 下午3.35.19.png

查看HDP的代碼和配置發(fā)現(xiàn)hdp專門為適配timeline-service服務(wù)針對(duì)tez和spark專門開發(fā)了插件煌茬。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末斥铺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子坛善,更是在濱河造成了極大的恐慌晾蜘,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浑吟,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡耗溜,警方通過查閱死者的電腦和手機(jī)组力,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抖拴,“玉大人燎字,你說我怎么就攤上這事“⒄” “怎么了候衍?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)洒放。 經(jīng)常有香客問我蛉鹿,道長(zhǎng),這世上最難降的妖魔是什么往湿? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任妖异,我火速辦了婚禮惋戏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘他膳。我一直安慰自己响逢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布棕孙。 她就那樣靜靜地躺著舔亭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蟀俊。 梳的紋絲不亂的頭發(fā)上钦铺,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音欧漱,去河邊找鬼职抡。 笑死,一個(gè)胖子當(dāng)著我的面吹牛误甚,可吹牛的內(nèi)容都是我干的缚甩。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼窑邦,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼擅威!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起冈钦,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤郊丛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后瞧筛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體厉熟,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年较幌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了揍瑟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乍炉,死狀恐怖绢片,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情岛琼,我是刑警寧澤底循,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站槐瑞,受9級(jí)特大地震影響熙涤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一灭袁、第九天 我趴在偏房一處隱蔽的房頂上張望猬错。 院中可真熱鬧,春花似錦茸歧、人聲如沸倦炒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逢唤。三九已至,卻和暖如春涤浇,著一層夾襖步出監(jiān)牢的瞬間鳖藕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工只锭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留著恩,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓蜻展,卻偏偏與公主長(zhǎng)得像喉誊,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子纵顾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容