重磅 解決 hadoop job 卡死 根源問題

做大數(shù)據(jù)&&算法 其實最重要的三件事 西采,就是 管理數(shù)據(jù) 和集群運維 模型訓練罐呼,一旦 遠離這三個主題鞠柄,大數(shù)據(jù)都無法發(fā)揮它應用的作用。
廢話不多說嫉柴,這幾天主要是采坑了厌杜。我認為現(xiàn)在碰到的最要命的就是 碰到 集群 掉鏈子 無法使用,導致 其他 同事無法運行 任務计螺。

這幾天夯尽,碰到了兩次 hadoop mapreduce 卡死的現(xiàn)象 ,主要就是停留在 job 那里 無法進行登馒,或者map 0 reduce 0.第一次 碰到時沒有找到原因匙握,用網(wǎng)上最粗暴的方法 重啟了hadoop集群,暫時解決了問題陈轿。
今天又碰到了同樣的問題圈纺,因為 logstash一直在往hdfs上寫數(shù)據(jù),一旦重啟集群可能會丟失數(shù)據(jù)济欢,所以 一直非常謹慎,不敢 行事小渊。希望找到最主要的原因法褥。通過在網(wǎng)上查找,其實大部分是三種
1.原先配置有嚴重錯誤問題酬屉,因為之前我的集群 運行良好半等,現(xiàn)在 卡死,可能是 最近 集群狀態(tài)除了問題可以排除這一條呐萨,還有就是程序本身有問題杀饵,因為同一個程序運行小數(shù)據(jù)量的正常出了結果,大數(shù)據(jù)量就job卡死掉了谬擦,說明程序本身沒有問題
2.剩下的兩天就是 磁盤不足了和內存 不足了
先說磁盤不足 切距,其實這個是半真半假的事情,我們三個 DataNode節(jié)點的 各有 12T 的數(shù)據(jù)存放 磁盤惨远,12塊1024G的磁盤構成谜悟,但是 系統(tǒng)盤 只有區(qū)區(qū) 60G话肖,
內存不足 ,也是一個半真半假的事情葡幸,每個節(jié)點 12G 內存最筒,三個節(jié)點36G,每個節(jié)點 cpu 六核蔚叨。
為了確定問題的根源床蜘,只能先看 hadoop的logs 日志,Master 和 DataNode的logs 都看了蔑水,但是都沒有找到具體的原因邢锯,有點沮喪,后來 就去分析 job 執(zhí)行 的網(wǎng)頁狀態(tài)肤粱,job狀態(tài)也沒有發(fā)現(xiàn)太多問題弹囚,因為 job卡死,很多job 就直接被 hadoop job -kill job_id 掉了
后來就看 集群狀態(tài)圖领曼,發(fā)現(xiàn)一些貓膩鸥鹉。 CPU total 變成0 了,memery也是 0庶骄,接著再看毁渗,發(fā)現(xiàn) node unhealthy 出現(xiàn)了 3,

image.png

點開一看单刁,三個數(shù)據(jù)節(jié)點都是unhealthy的灸异。

image.png

那么 這個unhealthy 是一個更明晰的問題特征,

image.png

接著就跟著往深里 找原因羔飞,出現(xiàn) unhealthy 兩種原因肺樟,1. 節(jié)點通信故障 ,因為hdfs 一直在寫數(shù)據(jù) 很正常逻淌,可以排除
2么伯。磁盤 真的 不足了,但是我的節(jié)點12個磁盤都是在沒有超過80%呀卡儒,只有系統(tǒng)盤超過了90%田柔,難道 hadoop 連系統(tǒng)盤都算是檢查的盤,好吧骨望,可能是硬爆,之后就按網(wǎng)上的以解決磁盤不足導致job卡死。

image.png

主要是 hadoop 默認檢查 磁盤狀況擎鸠,一旦超過默認的90%就會 導致 數(shù)據(jù)節(jié)點拒絕執(zhí)行mapreduce缀磕,通過在yarn-site.xml 設置 更大的閾值,延遲 節(jié)點拒絕mapreduce的情況。通過在其中添加
<property> <name>yarn.nodemanager.disk-health-checker.min-healthy-disks</name> <value>0.0</value> </property> <property> <name>yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage</name> <value>100.0</value> </property>
集群也沒有重啟虐骑,Master和數(shù)據(jù)節(jié)點 四個機器都修改了准验,然后就生效。所以說 有些配置可以不重啟集群實現(xiàn)的廷没。
如果要重啟糊饱,網(wǎng)上給出 只用重啟 NodeManager 和Resourcemannager
`
3.1 重啟nodemanager:

/usr/local/goldmine/hadoop/default/sbin/yarn-daemon.sh stop nodemanager

/usr/local/goldmine/hadoop/default/sbin/yarn-daemon.sh start nodemanager

3.2 重啟resourcemanager,(否則會導致修改的節(jié)點狀態(tài)錯亂)

/usr/local/goldmine/hadoop/default/sbin/yarn-daemon.sh stop resourcemanager

/usr/local/goldmine/hadoop/default/sbin/yarn-daemon.sh start resourcemanager

3.3 刷新http://hadoop/cluster/nodes/unhealthy頁面: 可以看到不健康的nodemanager已經(jīng)消失在列表了。3.4 命令顯示yarn各節(jié)點狀態(tài):
yarn node -list -all

`
也定位到了原來是系統(tǒng)磁盤惹得鬼,下次在建hadoop集群俊柔,系統(tǒng)磁盤也一定要足夠大,不然會嚴重影響集群的穩(wěn)定夭坪。
之后執(zhí)行job 完美執(zhí)行了,再看系統(tǒng)盤也恢復到40%一下过椎,剛才主要是系統(tǒng)盤有一些【臨時文件】導致的室梅。

之后發(fā)現(xiàn) job 又卡死了,但是這次是卡死在 map12 reduce0中疚宇,好詭異亡鼠,之前 發(fā)生了一件事情,map60% 后敷待,竟然回滾了到了map 0,接著卡死间涵。再次查看系統(tǒng)盤,又 飆到了97% 99% 96%榜揖,因為系統(tǒng)盤無法 擴容勾哩,這可咋整。

image.png

那我們就要想想 為什么 系統(tǒng)盤會突然猛增大量的臨時文件 擠占磁盤空間举哟,為什么 為什么K祭汀!7列伞G迸选!册赛!钠导,想了半天我終于知道了震嫉,這和hadoop的mapreduce 原理有關森瘪,如果是spark就不會出現(xiàn)這種情況,更多的是內存不足票堵,hadoop 的mapreduce 在map的中間結果會保留在磁盤上扼睬,而spark的中間結果會放在內存里,所以更快更吃內存。
正是因為hadoop的中間結果保存在了磁盤上窗宇,導致猛增大量臨時文件措伐。好,現(xiàn)在問題的根源找到了军俊,就是mapreduce 的中間文件太大影響了 磁盤空間 導致節(jié)點拒絕服務侥加,內存 和CPU 拒絕提供 都為 0, 導致 沒有資源粪躬,job 卡死担败。也說明了,為啥 小數(shù)據(jù)量程序正常镰官,大數(shù)據(jù)量了反而 job卡死提前,正是因為 數(shù)據(jù)量越大 中間結果就更多,擠占磁盤就更多泳唠。

但是我們 執(zhí)行mapreduce就是要產生中間文件的狈网,這個是源碼規(guī)定 適合hadoop運行保障的,不可以修改笨腥,那么 既然中間臨時文件必須產生拓哺,主要就是把中間文件放在哪里,可以保障 擠占磁盤的百分比更小扇雕,當然是更大的磁盤了拓售,我們的最小磁盤是系統(tǒng)盤,所以最容易增長百分比镶奉,job卡死础淤,所以我們要用最大的盤 保留 中間結果,我們最大的盤是1024G哨苛,就用這個就可以了鸽凶,然后就是設置 mapreduce中間結果路徑,在配置文件里建峭,到這里玻侥,問題就等于從根源上解決了。
hadoop 2.8.1 需要在 mapred-site.xml 設置 map.local.dir 和
map.tmp.dir 屬性對應的 磁盤目錄

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末亿蒸,一起剝皮案震驚了整個濱河市凑兰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌边锁,老刑警劉巖姑食,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異茅坛,居然都是意外死亡音半,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來曹鸠,“玉大人煌茬,你說我怎么就攤上這事〕固遥” “怎么了坛善?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長邻眷。 經(jīng)常有香客問我浑吟,道長,這世上最難降的妖魔是什么耗溜? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任组力,我火速辦了婚禮,結果婚禮上抖拴,老公的妹妹穿的比我還像新娘燎字。我一直安慰自己,他們只是感情好阿宅,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布候衍。 她就那樣靜靜地躺著,像睡著了一般洒放。 火紅的嫁衣襯著肌膚如雪蛉鹿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天往湿,我揣著相機與錄音妖异,去河邊找鬼。 笑死领追,一個胖子當著我的面吹牛他膳,可吹牛的內容都是我干的。 我是一名探鬼主播绒窑,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼棕孙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了些膨?” 一聲冷哼從身側響起蟀俊,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎订雾,沒想到半個月后肢预,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡葬燎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年误甚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谱净。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡窑邦,死狀恐怖,靈堂內的尸體忽然破棺而出壕探,到底是詐尸還是另有隱情冈钦,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布李请,位于F島的核電站瞧筛,受9級特大地震影響,放射性物質發(fā)生泄漏导盅。R本人自食惡果不足惜较幌,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望白翻。 院中可真熱鬧乍炉,春花似錦、人聲如沸滤馍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽巢株。三九已至槐瑞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間阁苞,已是汗流浹背困檩。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留那槽,地道東北人窗看。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像倦炒,于是被迫代替她去往敵國和親显沈。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內容