2013-04-18 38 views
8

任何人都可以讓我知道如何修復丟失的副本?Hadoop:FSCK結果顯示丟失的副本

============================================== ==============================

總尺寸:3447348383乙

總顯示目錄:120

文件總數:98個

總塊(有效):133(平均塊大小25919912 B)

微創複製塊:133(100.0%)

過複製塊:0(0.0%)

在複製的塊:21(15.789474%)

誤複製的塊:0(0.0%)

默認複製因子:3

平均塊複製:2.3834586

損壞的塊:0

個缺少副本:147(46.37224%)

編號數據的節點:3

機架的數量:1

================= ================================================== =========

按照不定指導,

損壞或丟失塊是關注的最大原因,因爲它意味着數據已經丟失 。默認情況下,fsck會保留損壞或丟失塊的文件,但您可以告訴它 對其執行以下操作之一:

•將受影響的文件移動到HDFS中的/ lost + found目錄,使用 - 移動選項。 文件被分成連續塊的鏈,以幫助您嘗試的任何打撈工作。

•使用-delete選項刪除受影響的文件。 被刪除後,文件無法恢復。

這裏我的問題是如何找出受影響的文件?我已經和Hive一起合作,在沒有任何問題的情況下獲得所需的輸出。會影響查詢處理的性能/速度。

問候,

拉吉

回答

12

缺少副本應該是自愈隨着時間的推移。但是,如果你想將它們移動到的lost + found,你可以使用:

hadoop fsck/-move 

或用其刪除:

hadoop fsck/-delete 

如果你只是想找出與複製下的文件塊,使用:

hadoop fsck/-files -blocks -locations 

這會給你很多的細節,包括預期/實際塊複製計數列表。

+0

所以失蹤的副本是不是根據你的問題,不是嗎?會影響查詢處理的性能/速度。 – Raj 2013-04-23 10:05:14

+1

只要您不遺漏給定塊的所有副本,可以從剩餘的副本中重新生成缺失的副本。如果文件有一個或多個塊缺少所有副本,則該文件已損壞,無法恢復。你可以找到埃裏克·薩默爾的「Hadoop的操作的書一個很好的解釋:http://books.google.com/books?id=TQqSwRScVhoC&printsec=frontcover&dq=sammer+hadoop+operations&hl=en&sa=X&ei=r652UczYCsKT2QXcm4GICg&ved=0CDkQ6AEwAA#v=onepage&q&f = false – highlycaffeinated 2013-04-23 15:54:50

+1

嗨,如果我運行hadoop fsck/-delete,內部發生了什麼?請你詳細說明一下。 – 2015-12-04 08:09:44