Команда fsck

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

Обычно NameNode автоматически исправляет большинство сбоев. По умолчанию fsck игнорирует открытые файлы, но предоставляет возможность выбора всех файлов во время создания отчетов. Команда fsck системы HDFS не является командой оболочки Hadoop, она может быть запущена путем bin/hdfs fsck.

Команда fsck может быть запущена по всей файловой системе или только на подмножестве файлов.

Пример использования:

hdfs fsck <path>
       [-list-corruptfileblocks |
       [-move | -delete | -openforwrite]
       [-files [-blocks [-locations | -racks | -replicaDetails | -upgradedomains]]]
       [-includeSnapshots] [-showprogress]
       [-storagepolicies] [-maintenance]
       [-blockId <blk_Id>]
  • path – начало проверки с указанного пути;
  • -delete – удаление поврежденных файлов;
  • -files – отобразить проверяемые файлы;
  • -files -blocks – отобразить отчет о блокировке;
  • -files -blocks -locations – отобразить расположение каждого блока;
  • -files -blocks -racks – отобразить топологию сети для расположения узлов данных;
  • -files -blocks -replicaDetails – отобразить каждую копию реплики;
  • -files -blocks -upgradedomains – отобразить обновления доменов для каждого блока;
  • -includeSnapshots – включить данные снапшотов, если указанный путь указывает на каталог снапшотов или под ним есть каталоги снапшотов;
  • -list-corruptfileblocks – отобразить список отсутствующих блоков и файлов, к которым они принадлежат;
  • -move – переместить поврежденные файлы в /lost+found;
  • -openforwrite – отобразить файлы, открытые для записи;
  • -showprogress – отобразить точки для прогресса в выводе; по умолчанию выключено (без прогресса);
  • -storagepolicies – отобразить сводную политику хранения для блоков;
  • -maintenance – отобразить детали узла;
  • -blockId – отобразить информацию о блоке.