Удаление файлов и директорий

В HDFS можно удалять файлы и директории с помощью CLI, пользовательского интерфейса HDFS или разных API. Для получения информации об использовании этих утилит обратитесь к статье Подключение к HDFS.

При удалении файлов из HDFS удаляются сначала метаданные этих файлов и их реплик в NameNode. Если для блоков файла нет метаданых, они со временем удаляются.

Для внесения любых изменений в каталогах HDFS необходимо иметь права на запись (w). Если таких прав нет, сервис выдаст ошибку при попытке удалить файл или создать корзину. Более подробную информацию о том, как получить необходимые права доступа или изменить разрешения для каталога, можно получить в статье Защита файлов в HDFS.

Корзина

Корзина — это настройка для безопасного удаления данных. Если в конфигурационном файле core-site.xml включена опция корзины, то при удалении файла будет создана директория .Trash и файл переместится в нее. При этом в метаданных сохранится путь к блокам файла, поэтому файл удален не будет.

В ADH корзина включена по умолчанию. За работу корзины отвечают следующие параметры:

  • fs.trash.interval — время в минутах, после которого файл будет удален навсегда. Чтобы отключить корзину, установите значение этого параметра равным 0. Значение по умолчанию — 1440.

  • fs.trash.checkpoint.interval — периодичность удаления файлов из корзины в минутах. Значение по умолчанию — 60.

Это значит, что каждые 60 минут (значение fs.trash.checkpoint.interval) проверяется как долго файлы находятся в корзине. Если какие-то из файлов находятся в корзине дольше, чем 1440 минут (значение fs.trash.interval), то они удаляются безвозвратно.

Удаление файлов через CLI

Чтобы удалить файл или директорию, выполните одну из следующих команд:

  • rm — удаляет файл или директорию.

  • rmdir — удаляет директорию.

  • rmr — удаляет файл и директорию со всеми ее каталогами. Это устаревшая команда. Вместо нее рекомендуется использовать команду rm с опцией R.

Пример команды для удаления директории без перемещения его в корзину:

$ hadoop fs -rm -R -skipTrash <URI>

Здесь <URI> — путь к файлу или директории, которые нужно удалить.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней