Hadoop поврежденные блоки - PullRequest
       3

Hadoop поврежденные блоки

2 голосов
/ 10 января 2012

Я использую hadoop 0.20.append и hbase 0.90.0. Я загрузил несколько данных в Hbase, а затем убил HMaster и Namenode для оценки. После этого я добавил еще несколько данных в Hbase и увидел их в оболочке hbase.

Теперь, когда я начал «Наманоде», я столкнулся с проблемами. В журнале говорится, что имя узла находится в безопасном режиме, и я не могу добавить или удалить содержимое, как в безопасном режиме.

Также, когда я только что побежал

./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

Но даже после этого получается тот же список поврежденных блоков. Есть идеи, как решить эту проблему и восстановить мои данные?

Ответы [ 2 ]

0 голосов
/ 02 декабря 2016

У меня была похожая проблема. По моему опыту, они не могут быть восстановлены. Процесс создания файлов был прерван и оставлен без присмотра. Вы можете увидеть, можете ли вы прочитать их по:

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

И было безопасно удалить их, потому что неудачный процесс отвечает за повторную попытку создания этих файлов позже. И они должны быть удалены, потому что такое несоответствие может вызвать будущие проблемы.

0 голосов
/ 21 декабря 2015

Как и предполагает, -openforwrite означает, что когда набор файлов записывался, они не были закрыты. Поэтому, если вы посмотрите подробности fsck, вы увидите те файлы, о которых все еще сообщалось, что hdfs fsck открыт. Единственным решением проблемы является удаление файлов, которые отображаются открытыми в fsck. Дайте мне знать по любым вопросам.

...