CDH問題處理——塊丟失(塊損壞)

現象:選擇抑制後發現有些風機查詢數據一直查不出來,也沒報什麼錯誤,只是查詢超時,程序取數據時卡在ResultSet.next()中。

原因:抑制只是讓警告不再報出來,塊損壞對於查詢的影響仍然存在。

解決方案:

  1. 查看損壞的塊:

hdfs fsck -list-corruptfileblocks

  1. 自動修復

1)當數據塊損壞後,DataNode節點執行directoryscan操作之前,都不會發現損壞;

默認是6小時掃描一次,配置項爲dfs.datanode.directoryscan.interval : 21600

2)在DN向NN進行blockreport前,都不會恢復數據塊;

默認爲6小時執行一次,配置項爲dfs.blockreport.intervalMsec : 21600000

當NN收到blockreport纔會進行恢復操作。

  1. 手動修復

hdfs debug recoverLease -path /blockrecover/blocktest.md -retries 10 # 重試10次

  1. 在錫盟遇到的執行手動修復雖然成功了,但是檢測損壞的塊仍然可以檢測出來,直接刪除損壞的塊:

hdfs fsck / -delete

  1. 執行完後再打開管理界面就不會報塊丟失了,執行查詢也沒有問題,只是風機可能會丟失一段時間的數據。
  2. 參考:https://blog.csdn.net/weixin_44131414/article/details/100016728

https://www.cnblogs.com/yinzhengjie/p/10923309.html

  1. 更多hdfs相關命令:

https://hadoop.apache.org/docs/r2.9.1/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html#fsck

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章