Фактор репликации

Фактор репликации (replication factor) HDFS — это параметр, в котором задается количество копий файла, которые будут храниться в системе.

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

Более подробно о том, как работает репликация в HDFS, читайте в статье Архитектура HDFS.

Изменение фактора репликации

Фактор репликации можно изменить как для всей системы, так и для отдельного файла или директории.

Чтобы изменить фактор репликации по умолчанию, измените значение параметра dfs.replication в файле конфигурации hdfs-site.xml.

Чтобы сделать это с помощью ADCM:

  1. На странице Clusters выберите нужный кластер.

  2. Перейдите на вкладку Services и нажмите на HDFS.

  3. Найдите поле параметра dfs.replication, введите новое значение фактора репликации по умолчанию и нажмите Apply. Подтвердите изменения в конфигурации HDFS, нажав Save.

  4. В меню Actions выберите Restart, убедитесь, что для параметра Apply configs from ADCM установлено значение true, и нажмите Run.

Параметр dfs.replication в ADCM
Параметр dfs.replication в ADCM

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

$ hadoop fs -setrep <numReplicas> <path>

Здесь:

  • <numReplicas> — фактор репликации файла или директории.

  • <path> — путь к файлу или директории. Если указан путь к директории, команда изменяет фактор репликации всех файлов в директории, включая дочерние каталоги.

ПРИМЕЧАНИЕ

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

Увеличение фактора репликации

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

Понижение фактора репликации

Когда фактор репликации снижается, NameNode сообщает DataNodes какие блоки следует удалить. DataNodes может потребоваться некоторое время, чтобы удалить блоки и сообщить об освободившемся дисковом пространстве.

Вы можете установить фатктор репликации равным 1. Это снизит отказоустойчивость HDFS, но это может быть необходимо, например, для кластеров с одним хостом. Если вы хотите установить фактор репликации 1 для экономии ресурсов, рассмотрите вместо этого возможность использования политик хранения или erasure coding.

Изменение размера блока

Размер блока по умолчанию — 128 МБ. Вы можете изменить размер блока для HDFS в параметре dfs.blocksize файла конфигурации hdfs-site.xml.

Чтобы сделать это с помощью ADCM:

  1. На странице Clusters выберите нужный кластер.

  2. Перейдите на вкладку Services и нажмите на HDFS.

  3. Найдите поле параметра dfs.blocksize, введите новый размер блока в байтах и нажмите Apply. Вы также можете использовать сокращения, например, k для килобайт, m для мегабайт и g для гигабайт.

  4. Подтвердите изменения в конфигурации HDFS, нажав Save.

  5. В меню Actions выберите Restart, убедитесь, что для параметра Apply configs from ADCM установлено значение true, и нажмите Run.

Новый размер блока применится только к новым файлам, добавленным в HDFS.

Параметр dfs.blocksize в ADCM
Параметр dfs.blocksize в ADCM
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней