HDFS сообщает, что файл все еще открыт, но процесс записи в него был прерван

Я новичок в hadoop и последние пару часов пытался найти в Google эту проблему, но не смог найти ничего, что помогло. Моя проблема в том, что HDFS говорит, что файл все еще открыт, хотя процесс записи в него давно мертв. Это делает невозможным чтение из файла.

Я запустил fsck для каталога, и он сообщает, что все в порядке. Однако когда я запускаю "hadoop fsck -fs hdfs: // hadoop / logs / raw / directory_contain_file -openforwrite" Я получаю

Status: CORRUPT
 Total size:    222506775716 B
 Total dirs:    0
 Total files:   630
 Total blocks (validated):  3642 (avg. block size 61094666 B)
  ********************************
  CORRUPT FILES:    1
  MISSING BLOCKS:   1
  MISSING SIZE:     30366208 B
  ********************************
 Minimally replicated blocks:   3641 (99.97254 %)
 Over-replicated blocks:    0 (0.0 %)
 Under-replicated blocks:   0 (0.0 %)
 Mis-replicated blocks:     0 (0.0 %)
 Default replication factor:    2
 Average block replication: 2.9991763
 Corrupt blocks:        0
 Missing replicas:      0 (0.0 %)
 Number of data-nodes:      23
 Number of racks:       1

Повторно выполняя команду fsck для файла openforwrite, я получаю

.Status: HEALTHY
 Total size:    793208051 B
 Total dirs:    0
 Total files:   1
 Total blocks (validated):  12 (avg. block size 66100670 B)
 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:    2
 Average block replication: 3.0
 Corrupt blocks:        0
 Missing replicas:      0 (0.0 %)
 Number of data-nodes:      23
 Number of racks:       1

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

6
задан jwegan 18 March 2011 в 02:22
поделиться