hdfs的bug紀錄, Unexpected block state
阿新 • • 發佈:2018-12-23
今早遇到一個bug,提交 spark job 失敗。說 hdfs 在 safe mode狀態,不允許建立和刪除檔案。
然後發現 hdfs 的日誌檔案不斷滾動,幾乎每秒鐘100M的速度打日誌,當時沒有看懂。safe mode 開啟關閉了幾回,發現主要的問題是下面這條日誌:
java.lang.IllegalStateException: Unexpected block state: blk_1073748951_12122 is COMMITTED but not COMPLETE, file=application_1543829391405_0459_1.inprogress (INodeFile), blocks=[blk_1073748951_12122] (i=0)d
翻譯:blk_1073748951_12122 壞了,該block屬於檔案 application_1543829391405_0459_1.inprogress
解決方案:刪除該檔案,關閉safe mode。
問題推測:我們的 yarn 叢集執行在 aws 上,配置了彈性伸縮的策略。 application_1543829391405_0459_1.inprogress 屬於一個 spark application 的meta資訊。
可能是彈性收縮,也可能是偶然因素,導致 block 資料丟失,於是引發問題:
1. spark application 失敗
2. dfs自我修復,瘋狂打日誌
3. 打開了 safe mode,無法提交新的任務