Фактор репликации
Фактор репликации (replication factor) HDFS — это параметр, в котором задается количество копий файла, которые будут храниться в системе.
При создании файла в HDFS он разбивается на блоки — фрагменты данных фиксированного размера. Затем каждый блок этого файла копируется столько раз, сколько задано в значении фактора репликации. Фактор репликации HDFS по умолчанию равен трем.
Более подробно о том, как работает репликация в HDFS, читайте в статье Архитектура HDFS.
Изменение фактора репликации
Фактор репликации можно изменить как для всей системы, так и для отдельного файла или директории.
Чтобы изменить фактор репликации по умолчанию, измените значение параметра dfs.replication
в файле конфигурации hdfs-site.xml.
Чтобы сделать это с помощью ADCM:
-
На странице Clusters выберите нужный кластер.
-
Перейдите на вкладку Services и нажмите на HDFS.
-
Найдите поле параметра dfs.replication, введите новое значение фактора репликации по умолчанию и нажмите Apply. Подтвердите изменения в конфигурации HDFS, нажав Save.
-
В меню Actions выберите Restart, убедитесь, что для параметра Apply configs from ADCM установлено значение true, и нажмите Run.
Чтобы установить фактор репликации для файла или директории, используйте команду 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:
-
На странице Clusters выберите нужный кластер.
-
Перейдите на вкладку Services и нажмите на HDFS.
-
Найдите поле параметра dfs.blocksize, введите новый размер блока в байтах и нажмите Apply. Вы также можете использовать сокращения, например,
k
для килобайт,m
для мегабайт иg
для гигабайт. -
Подтвердите изменения в конфигурации HDFS, нажав Save.
-
В меню Actions выберите Restart, убедитесь, что для параметра Apply configs from ADCM установлено значение true, и нажмите Run.
Новый размер блока применится только к новым файлам, добавленным в HDFS.