MapReduce中,如果maptask運(yùn)行失敗怎么處理?程序源代碼關(guān)注共 1436字,需瀏覽 3分鐘 ·2020-08-12 12:28 一 常見容錯(cuò)場(chǎng)景分析 1.1作業(yè)某個(gè)任務(wù)阻塞了,長(zhǎng)時(shí)間占用資源不釋放 1.2在MapTask任務(wù)運(yùn)行完畢,ReduceTask運(yùn)行過程中,某個(gè)MapTask節(jié)點(diǎn)掛了,或者某個(gè)MapTask結(jié)果存放的那磁盤壞掉了 二 作業(yè)某個(gè)任務(wù)阻塞了,長(zhǎng)時(shí)間占用資源不釋放 這種問題通常是由于程序bug,數(shù)據(jù)特性造成的,會(huì)讓程序阻塞,任務(wù)運(yùn)行停滯不前。在我們表面上看來是任務(wù)停滯不前。 這種問題經(jīng)常發(fā)生,任務(wù)長(zhǎng)時(shí)間占用著資源不釋放,如果不采取一定手段,可能會(huì)永遠(yuǎn)被占用,造成資源泄露。 在TaskTracker,每個(gè)任務(wù)會(huì)定期向TaskTracker匯報(bào)進(jìn)度,如果進(jìn)度不變則不匯報(bào),這樣一旦達(dá)到超時(shí)限制,TaskTracker會(huì)殺掉該任務(wù),并將任務(wù)狀態(tài)KILLED匯報(bào)給YARN,從而重新調(diào)度該任務(wù)。 在實(shí)際應(yīng)用場(chǎng)景中,有些正常的作業(yè),其任務(wù)可能長(zhǎng)時(shí)間沒有讀入或者輸出,比如讀取數(shù)據(jù)庫(kù)的MapTask或者需要連接其他外部系統(tǒng)的Task,對(duì)于這類應(yīng)用,在編寫Mapper或Reducer時(shí),應(yīng)當(dāng)啟動(dòng)一個(gè)額外的線程通過Reporter組件定期向TaskTracker匯報(bào)心跳(只是告訴TaskTracker自己還活著,不要把我殺了)。 三 在MapTask任務(wù)運(yùn)行完畢,ReduceTask運(yùn)行過程中,某個(gè)MapTask節(jié)點(diǎn)掛了,或者某個(gè)MapTask結(jié)果存放的那磁盤壞掉了 Case1:如果節(jié)點(diǎn)掛掉,JobTracker通過心跳機(jī)制知道TaskTracker死掉了,會(huì)重新調(diào)度之前正在運(yùn)行的Task和正在運(yùn)行的作業(yè)中已經(jīng)運(yùn)行完成的MapTask Case2:如果節(jié)點(diǎn)沒有掛,只是存放MapTask結(jié)果的磁盤損壞了,則分兩種情況 #所有的ReduceTask已經(jīng)完成shuffle階段 #尚有部分ReduceTask沒有完成shuffle階段,需要讀取該MapTask任務(wù) 對(duì)于第一種情況,如果所有ReduceTask一路順風(fēng)地運(yùn)行下去,則無需對(duì)已經(jīng)運(yùn)行完成的MapTask作任何處理,如果某些ReduceTask一段時(shí)間后運(yùn)行失敗了,則處理方式與第二種一樣。 對(duì)于第二種情況,當(dāng)ReduceTask遠(yuǎn)程讀取那個(gè)已經(jīng)運(yùn)行完成的MapTask結(jié)果(但結(jié)果已經(jīng)損壞)時(shí),會(huì)嘗試讀取若干次,如果嘗試次數(shù)超過了某個(gè)上限值,則會(huì)通過RPC告訴所在的TaskTracker該MapTask結(jié)果已經(jīng)損壞,而TaskTracker則進(jìn)一步通過RPC告訴JobTracker,JobTracker收到該消息后,會(huì)重新調(diào)度該MapTask,進(jìn)而重新計(jì)算生成結(jié)果。 原文: cnblogs.com/OYziqing/p/10382372.html --end-- 掃描下方二維碼 添加好友,備注【交流群】 拉你到學(xué)習(xí)路線和資源豐富的交流群 瀏覽 54點(diǎn)贊 評(píng)論 收藏 分享 手機(jī)掃一掃分享分享 舉報(bào) 評(píng)論圖片表情視頻評(píng)價(jià)全部評(píng)論推薦 MapReduce源碼解析之MapTaskMapper 源碼分析了MapReduce提交任務(wù)過程中主要的切片計(jì)算之后,接下來就要看計(jì)算程序到達(dá)切片所在數(shù)據(jù)節(jié)點(diǎn)后,該如何進(jìn)行工作。public class Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT> {/** * The <code&...Kafka如果丟了消息,怎么處理的?公眾號(hào)程序猿DD0Kafka如果丟了消息,怎么處理的?JAVA葵花寶典0項(xiàng)目失敗如何處理?①開始前,我們的專人經(jīng)理會(huì)協(xié)助您和開發(fā)者確認(rèn)需求細(xì)則,必要時(shí)簽署合同,盡量規(guī)避沖突發(fā)生。 ②如果真的發(fā)生了不可調(diào)和的沖突,會(huì)安排專人進(jìn)行項(xiàng)目仲裁,確認(rèn)權(quán)責(zé)。 ③根據(jù)仲裁結(jié)果,會(huì)幫助您對(duì)接新的開發(fā)者,或者安排退款。市場(chǎng)是怎么失敗的危機(jī)之后的反思—— ·激勵(lì)機(jī)制如何發(fā)揮作用? ·自由市場(chǎng)會(huì)產(chǎn)生什么風(fēng)險(xiǎn)? ·政府應(yīng)圖像處理怎么入門新機(jī)器視覺0市場(chǎng)是怎么失敗的市場(chǎng)是怎么失敗的0C++核心準(zhǔn)則E.26:如果無法拋出異常,盡快進(jìn)行失敗處理?面向?qū)ο笏伎?/div>0CPU中的程序是怎么運(yùn)行起來的良許Linux0CPU中的程序是怎么運(yùn)行起來的李肖遙0點(diǎn)贊 評(píng)論 收藏 分享 手機(jī)掃一掃分享分享 舉報(bào) 美女被男人操逼 | 日韩人人干 | 成年人免费片 | 成人影院在线观看无码内设 | 日日骚av一区二区三区 | 天天爱天天草 | 午夜天堂在线观看 | 欧美aaaa大片 | 九九成人免费视频 | 91 国产 爽爽黄 |