用shell獲得hadoop中mapreduce任務運行結果的狀態


在近期的工作中,我需要用腳本來運行mapreduce,並且要判斷運行的結果,根據結果來做下一步的動作。

開始我想到shell中獲得上一條命令運行結果的方法,即判斷"$?"的值

if [ $? -eq 0 ];then
    #do something
fi

但是有時候即便mapreduce運行失敗了,也還是會進入判斷結構中。

 

后來查閱了相關資料,得知hadoop中可以使用yarn的命令,來獲得job的狀態,包括job名稱、完成百分比、當前狀態等參數,其實就和yarn的web界面查看到的數據一模一樣。

使用yarn命令查看job狀態:

 

我們要做的就只剩下截取“Final-State”后的字段,即可判斷程序運行的最終結果了。這里我們要使用awk命令進行解析:

yarn application -status application_1468831024962_0278 | grep 'Final-State' | awk -F ':' '{print $2}'

其中 application_1468831024962_0278 是我的applicationID,你可以通過yarn application -list來獲得applicationID。

運行結果如下:

這樣就很容易判斷成功與否,進行下一步的處理了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM