我使用的是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
但即使在获得相同的损坏块列表之后。关于如何解决这个问题并恢复我的内容的任何想法?
答案 0 :(得分:0)
我有类似的问题。根据我的经验,他们无法恢复。创建文件的过程中断,无人看管。您可以看看是否可以通过以下方式阅读它们:
hdfs dfs -cat /path/to/file
hdfs dfs -get /path/to/file local_file
删除它们是安全的,因为失败的进程负责稍后再次重试这些文件的创建。 它们应该被删除,因为这种不一致可能会导致未来的问题。
答案 1 :(得分:-1)
正如它所暗示的那样,-openforwrite意味着当文件集被写入时,它们没有被关闭。所以,如果你可以查看fsck细节,你会看到那些仍然由hdfs fsck报告打开的文件。我已经面对这个问题和唯一的解决方案是删除在fsck中显示打开的文件。让我知道任何进一步的问题。