我正在使用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

删除它们很安全,因为失败的进程负责稍后再次尝试创建这些文件。
并且应将它们删除,因为这种不一致会导致将来出现问题。

09-26 21:25
查看更多