Как настроить функцию кодирования стирания в hadoop3 и используется ли она для хранения холодных файлов только по умолчанию?
Согласно примечаниям к выпуску Hadoop 3.x, они ввели кодирование Erasure, чтобы преодолеть проблемы с хранилищем.
Кодирование Erasure - это метод долговременного хранения данных со значительной экономией места по сравнению с репликацией. Стандартные кодировки, такие как Reed-Solomon (10,4), занимают 1,4-кратное пространство, по сравнению с 3-кратным объемом стандартной репликации HDFS.
Поскольку кодирование стирания накладывает дополнительные накладные расходы во время восстановления и выполняет в основном удаленное чтение, оно традиционно используется для хранения более холодных и менее часто используемых данных. Пользователи должны учитывать нагрузку на сеть и ЦП при кодировании стирания при развертывании этой функции.
Я ищу образцы файлов конфигурации для того же.
Кроме того, даже после настройки политики ec и включения ее с помощью hdfs ec-enablePolicy
, политика работает только для холодных файлов или по умолчанию реализована для хранения всех файлов hdfs?
1 ответ
В hadoop3 мы можем включить политику кодирования Erasure для любого folder
в HDFS.
Команда для просмотра списка поддерживаемых политик стирания:
./bin/hdfs ec -listPolicies
Команда для включения политики стирания XOR-2-1-1024k:
./bin/hdfs ec -enablePolicy -policy XOR-2-1-1024k
Команда для установки политики удаления в каталог HDFS:
./bin/hdfs ec -setPolicy -path /tmp -policy XOR-2-1-1024k
Команда для получения политики, установленной для данного каталога:
./bin/hdfs ec -getPolicy -path /tmp
Команда для удаления политики из каталога.
./bin/hdfs ec -unsetPolicy -path /tmp
Команда для отключения политики:
./bin/hdfs ec -disablePolicy -policy XOR-2-1-1024k
Редактировать:
Пример XML-файла политики ЕС с именем user_ec_policies.xml.template
находится в каталоге conf Hadoop ($HADOOP_HOME/etc/hadoop/), доступном для справки.
По умолчанию REPLICATION
политика всегда включена. Политика кодирования Erasure по умолчанию отключена.
Кодирование стирания применяется только для выбранных HDFS
путь, например, если вы выбираете /erasure_code_data в качестве пути при настройке политики, тогда EC применяется только для этого каталога. И другой файл, уже присутствующий в HDFS, такой как /tmp /user, имеет политику REPLICATION.