我正在使用hadoop 0.20.append和hbase 0.90.0。我将少量数据上传到Hbase,然后出于评估目的杀死了HMaster和Namenode。之后,我向Hbase添加了更多数据,并且可以在hbase shell中看到它们。
现在,当我启动Namenode时,我遇到了问题。日志显示名称节点处于安全模式,因此无法像安全模式一样添加或删除内容。
我刚跑的时候
./bin/hadoop fsck /
我明白了
............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 / -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
路径“/”下的文件系统是CORRUPT
以及损坏块的信息。
也尝试使用
./bin/hadoop fsck / -move
但即使在那之后,也会得到相同的损坏块列表。关于如何解决此问题并恢复我的内容的任何想法吗?
最佳答案
我有类似的问题。以我的经验,它们无法复原。创建文件的过程被中断,并使其无人看管。您可以通过以下方式查看是否可以阅读它们:
hdfs dfs -cat /path/to/file
hdfs dfs -get /path/to/file local_file
删除它们很安全,因为失败的进程负责稍后再次尝试创建这些文件。
并且应将它们删除,因为这种不一致会导致将来出现问题。