2012-01-10 4 views
2

hadoop 0.20.append 및 hbase 0.90.0을 사용하고 있습니다. Hbase에 몇 가지 데이터를 업로드 한 다음 HMaster 및 Namenode를 평가 목적으로 강제 종료했습니다. 이 후 나는 Hbase에 몇 가지 더 많은 데이터를 추가했고 나는 hbase 쉘에서 그것들을 볼 수 있었다.하둡 손상 블록

이제 네임 노드를 시작할 때 문제가 발생했습니다. 로그는 이름 노드가 안전 모드에 있으며 Safemode에서와 같이 내용을 추가하거나 삭제할 수 없다고 말합니다.

또한 그냥

............Status: HEALTHY 
Total size: 12034 B (Total open files size: 4762 B) 
Total dirs: 22 
Total files: 12 (Files currently being written: 3) 
Total blocks (validated):  12 (avg. block size 1002 B) (Total open file blocks (not validated): 3) 
Minimally replicated blocks: 12 (100.0 %) 
Over-replicated blocks:  0 (0.0 %) 
Under-replicated blocks:  0 (0.0 %) 
Mis-replicated blocks:   0 (0.0 %) 
Default replication factor: 3 
Average block replication:  3.0 
Corrupt blocks:    0 
Missing replicas:    0 (0.0 %) 
Number of data-nodes:   3 
Number of racks:    1 

경로에서 파일 시스템 '/'건강한

입니다

./bin/hadoop fsck/

내가 얻을를 실행했을 때하지만 ./bin/hadoop fsck/-openforwrite

을 실행할 때 얻을 ,

Total size: 16796 B 
Total dirs: 22 
Total files: 15 
Total blocks (validated):  15 (avg. block size 1119 B) 
    ******************************** 
    CORRUPT FILES:  2 
    ******************************** 
Minimally replicated blocks: 13 (86.666664 %) 
Over-replicated blocks:  0 (0.0 %) 
Under-replicated blocks:  0 (0.0 %) 
Mis-replicated blocks:   0 (0.0 %) 
Default replication factor: 3 
Average block replication:  2.6 
Corrupt blocks:    0 
Missing replicas:    0 (0.0 %) 
Number of data-nodes:   3 
Number of racks:    1 

경로에서 파일 시스템 '/'손상된 블록의 정보와 함께

손상되었습니다.

또한
./bin/hadoop fsck/-move 

그러나 심지어 손상된 블록의 같은 목록을 받고 그 이후

를 사용했습니다. 이 문제를 해결하고 내 콘텐츠를 복구하는 방법에 관한 아이디어?

+1

'hadoop dfsadmin -safemode leave'를 사용하여 안전 모드를 종료 했습니까 – frail

+0

예. 그것을 제공 한 후 Hadoop에 데이터를 넣으면 불일치 상태 예외가 발생하고 데이터를 복구 할 수 없습니다. – sriram

답변

-1

제안대로, 파일 세트가 작성 될 때, -openforwrite는 닫히지 않았습니다. 그래서 fsck 세부 사항을 볼 수 있으면 hdfs fsck에 의해 열린 것으로보고 된 파일을 볼 수 있습니다. 나는 직면했습니다. 이 문제와 유일한 해결책은 fsck에서 열려있는 파일을 삭제하는 것입니다. 추가 질문이 있으면 알려주십시오.

0

비슷한 문제가있었습니다. 내 경험으로는 회복 될 수 없습니다. 파일을 만드는 프로세스가 중단되어 무인 상태가되었습니다.

hdfs dfs -cat /path/to/file 
hdfs dfs -get /path/to/file local_file 

그리고 실패한 프로세스가 나중에 다시 해당 파일의 작성을 다시 시도 할 책임이 있기 때문에, 삭제하는 것이 안전했다 : 당신이로 읽을 수 있는지 확인할 수 있습니다. 이러한 불일치로 인해 향후 문제가 발생할 수 있으므로 제거해야합니다.