Ответ
Да, Erasure Coding (EC) — это метод обеспечения отказоустойчивости в HDFS, альтернативный классической репликации. Вместо хранения полных копий данных (реплик) EC разбивает данные на фрагменты, кодирует их с добавлением избыточных блоков четности. Это позволяет восстановить данные при потере части блоков.
Сравнение с репликацией (factor=3):
- Репликация: Хранит 3 полные копии. Эффективность использования диска: 33%.
- Erasure Coding (схема RS-6-3): Разбивает данные на 6 блоков, добавляет 3 блока четности. Позволяет пережить потерю любых 3 блоков. Эффективность использования диска: 6/(6+3) = 67%.
Преимущества EC:
- Значительная экономия дискового пространства (часто в 2 раза и более) при сопоставимом уровне отказоустойчивости.
- Идеально подходит для холодных или редко читаемых данных (архивы, бэкапы, большие наборы данных для ML).
Недостатки / Ограничения EC:
- Вычислительные накладные расходы: Кодирование и декодирование требуют CPU.
- Латентность: Восстановление данных при отказе и чтение (особенно при деградации) медленнее, чем при чтении локальной реплики.
- Не подходит для горячих данных или файлов, которые часто перезаписываются (EC в HDFS поддерживает только append).
Настройка в HDFS:
# Установка политики EC для директории
hdfs ec -setPolicy -policy RS-6-3-1024k -path /data/archive