Квоты

В HDFS можно установить ограничения на размер директории и количество файлов (имен) с помощью квот.

Существуют три типа квот:

Все типы квот работают независимо. Это значит, что вы можете настроить все три типа квот одновременно.

Все квоты записываются в файл fsimage. Когда сервис NameNode запускается, он выводит информацию обо всех нарушениях квот.

Информация об установке или удалении квоты заносится в EditLogs.

Квоты имен

Квота имен — это ограничение на количество имен файлов и директорий в каталоге, включая сам каталог. В квоте учитывается создание новых файлов или директорий и их переименование.

Когда квота будет заполнена, любые операции создания или переименования файлов будут завершаться с ошибкой.

Попытка установить квоту будет успешной, даже если каталог уже нарушает эту квоту.

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

$ hdfs dfsadmin -setQuota <N> <directory>...<directory>

Здесь:

  • <N> — положительное целое число, представляющее количество имен, разрешенных в каталоге;

  • <directory> — путь к директории, для которой нужно установить квоту.

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

$ hdfs dfsadmin -clrQuota <directory>...<directory>

Здесь <directory> — путь к директории, для которой нужно удалить квоту.

Квоты пространств

Квота пространства — это ограничение размера директории. Квота измеряется блоками, включая их реплики. Это означает, что изменение коэффициента репликации файлов повлияет на заполнение квоты. Например, 1 ГБ данных с коэффициентом репликации 3 занимает 3 ГБ квоты.

В квоте не учитываются операции, при которых не происходит создание блоков. Например:

  • создание каталога;

  • создание файла (если квота заполнена, файл будет создан, но он будет пустым);

  • размещение метаданных.

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

$ hdfs dfsadmin -setSpaceQuota <N> <directory>...<directory>

Здесь:

  • <N> — положительное целое число, представляющее предельный размер директории в байтах. Для удобства размер также может быть указан с помощью двоичного префикса, например, 50g для 50 ГБ, 2t для 2 ТБ и т. д.

  • <directory> — путь к директории, для которой необходимо установить квоту пространства.

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

$ hdfs dfsadmin -clrSpaceQuota <directory>...<directory>

Здесь <directory> — путь к директории, для которой нужно удалить квоту.

Квоты типа хранилища

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

Прежде чем устанавливать квоту типа хранилища, убедитесь, что для директории настроена политика хранения. Для получения информации о политиках хранения обратитесь к статье Политики хранения.

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

$ hdfs dfsadmin -setSpaceQuota <N> -storageType <storagetype> <directory>...<directory>

Здесь:

  • <N> — положительное целое число, представляющее предельный размер определенного типа хранилища, которое занимает директория, в байтах. Для удобства размер также может быть указан с помощью двоичного префикса, например, 50g для 50 ГБ, 2t для 2 ТБ и т. д.

  • <storagetype> — тип хранилища, для которого необходимо установить ограничение. Возможные значения: RAM_DISK, DISK, SSD, ARCHIVE.

  • <directory> — путь к директории, для которой необходимо установить квоту типа хранилища.

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

$ hdfs dfsadmin -clrSpaceQuota -storageType <storagetype> <directory>...<directory>
  • <storagetype> — тип хранилища, для которого необходимо снять ограничения. Возможные значения: RAM_DISK, DISK, SSD, ARCHIVE.

  • <directory> — путь к директории, для которой необходимо удалить квоту типа хранилища.

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