Наша компания СберТех (Сбербанк Технологии) на данный момент использует HDFS 2.8.4, так как она имеет ряд преимуществ, таких как экосистема Hadoop, быстрая работа с большими объемами данных, хороша в аналитике и многое другое.
Но в декабре 2017 года Apache Software Foundation выпустила новую версию открытого фреймворка для разработки и запуска распределенных программ Hadoop 3.0.0, который включает в себя ряд существенных улучшений по сравнению с предыдущей основной линейкой релизов (hadoop-2.x).
Одно из самых важных обновлений, которое нас интересует, — это поддержка Erasure Coding. Поэтому была поставлена задача сравнить эти версии между собой.
Для данной исследовательской работы компания «СберТех» выделила 10 виртуальных машин размером 40 ГБ.
Поскольку для политики кодирования RS(10,4) требуется минимум 14 машин, протестировать ее будет невозможно.
На одной из машин помимо DataNode будет NameNode. Тестирование будет проводиться в соответствии со следующими политиками кодирования:
- Исключающее ИЛИ(2,1)
- РС(3,2)
- РС(6,3)
Проведение исследований
Тест скорости передачи данных
Были проведены тесты скорости передачи данных.Данные были перенесены из локальной файловой системы в распределенную файловую систему.
Размер файла, используемого в этом тесте, составляет 292,2 МБ.
Были получены следующие результаты:
Также был построен график сгруппированных полученных значений времени передачи файлов:
А также график сгруппированных скоростей передачи полученных данных:
Как видно из графика, самый быстрый способ передачи данных — это кодирование XOR(2,1).
Кодировки RS(6,3) и RS(3,2) демонстрируют схожее поведение, хотя среднее значение скорости для RS(6,3) несколько выше.
Репликация гораздо медленнее (примерно в 1,5 раза меньше, чем XOR и в 1,5 раза меньше, чем RS).
Что касается эффективности хранения, то XOR(2,1) и RS(6,3) являются наиболее выгодными методами хранения, избыточность данных составляет всего 50%.
Репликация с коэффициентом репликации 3 снова проигрывает, сохраняя 200% избыточных данных.
Тест производительности
В предыдущем тесте работоспособность серверов отслеживалась с помощью инструмента мониторинга Grafana. Ниже приведен график, показывающий нагрузку на центральный процессор во время тестов передачи данных:Как видно из графика, в этом тесте кодировка RS(6,3) также потребляет меньше всего ресурсов.
Репликация снова показывает худший результат.
Потребление ресурсов при восстановлении данных
Для проведения этого теста определенный объем данных был загружен в распределенную файловую систему Hadoop. Затем были спущены две машины с DataNode. Ниже приведены графики состояния машин на момент восстановления данных с кодировкой RS(6.3) и при использовании репликации:Состояние процессора при восстановлении данных при использовании кодирования RS(6,3)
Состояние ЦП при восстановлении данных при использовании репликации Как видно из графиков, кодирование RS(6,3) при восстановлении данных нагружает процессор сильнее, чем репликация, что логично, поскольку для восстановления утерянных данных с помощью избыточных кодов необходимо вычислять обратную матрицу избыточности, что потребляет больше ресурсов, чем просто перезапись данных из других DataNodes в случае репликации.
Результаты теста:
- Для скорости передачи данных лучше всего использовать кодировку XOR(2,1) или RS(6,3).
- При передаче данных процессор наименее нагружается кодировками RS(6,3) и RS(3,2).
- При восстановлении данных наименьшую нагрузку на процессор дает использование репликации.
- Наиболее компактным способом хранения данных являются кодировки RS(6,3) и XOR(2,1).
XOR(2, 1) — самый ненадежный способ хранения данных, так как позволяет потерять не более одной машины.
Заключение
Основными целями использования распределенной файловой системы в СберТехе являются:- Обеспечение высокой надежности
- Минимизация затрат на содержание серверов для хранения данных
- Предоставление инструментов для анализа данных
- HDFS 3 превосходит HDFS 2 с точки зрения надежности.
- HDFS 3 выигрывает с точки зрения минимизации затрат на содержание серверов, поскольку более компактно хранит данные.
- HDFS 3 имеет тот же набор инструментов анализа данных, что и HDFS 2.
Использованные источники:
- Коды Рида-Соломона.
Часть 1
- Коды Рида-Соломона.
Часть 2 - арифметика полей Галуа
- Апач Хадуп 3.0.0
-
Золотые Тропы 2: Утерянное Наследие
19 Oct, 24 -
Идти!
19 Oct, 24 -
Pornhub: Нас Никто Не Взломал, Это Обман
19 Oct, 24 -
Песочница
19 Oct, 24 -
«Афиша-Мир» Обновила Ios-Приложение
19 Oct, 24