Сравнительный Анализ Hdfs 3 С Hdfs 2

Наша компания СберТех (Сбербанк Технологии) на данный момент использует 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)
А также использование репликации с коэффициентом репликации 3. Размер блока данных был выбран равным 32 МБ.



Проведение исследований



Тест скорости передачи данных

Были проведены тесты скорости передачи данных.

Данные были перенесены из локальной файловой системы в распределенную файловую систему.

Размер файла, используемого в этом тесте, составляет 292,2 МБ.

Были получены следующие результаты:

Сравнительный анализ HDFS 3 с HDFS 2

Также был построен график сгруппированных полученных значений времени передачи файлов:

Сравнительный анализ HDFS 3 с HDFS 2

А также график сгруппированных скоростей передачи полученных данных:

Сравнительный анализ HDFS 3 с HDFS 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. Ниже приведен график, показывающий нагрузку на центральный процессор во время тестов передачи данных:

Сравнительный анализ HDFS 3 с HDFS 2

Как видно из графика, в этом тесте кодировка RS(6,3) также потребляет меньше всего ресурсов.

Репликация снова показывает худший результат.

Потребление ресурсов при восстановлении данных

Для проведения этого теста определенный объем данных был загружен в распределенную файловую систему Hadoop. Затем были спущены две машины с DataNode. Ниже приведены графики состояния машин на момент восстановления данных с кодировкой RS(6.3) и при использовании репликации:

Сравнительный анализ HDFS 3 с HDFS 2

Состояние процессора при восстановлении данных при использовании кодирования RS(6,3)

Сравнительный анализ HDFS 3 с HDFS 2

Состояние ЦП при восстановлении данных при использовании репликации Как видно из графиков, кодирование RS(6,3) при восстановлении данных нагружает процессор сильнее, чем репликация, что логично, поскольку для восстановления утерянных данных с помощью избыточных кодов необходимо вычислять обратную матрицу избыточности, что потребляет больше ресурсов, чем просто перезапись данных из других DataNodes в случае репликации.



Результаты теста:

  • Для скорости передачи данных лучше всего использовать кодировку XOR(2,1) или RS(6,3).

  • При передаче данных процессор наименее нагружается кодировками RS(6,3) и RS(3,2).

  • При восстановлении данных наименьшую нагрузку на процессор дает использование репликации.

  • Наиболее компактным способом хранения данных являются кодировки RS(6,3) и XOR(2,1).

Самым надежным методом хранения является кодирование RS(6,3), так как оно позволяет потерять до трёх машин без потери данных, а репликация с коэффициентом репликации 3 поддерживает выход из строя до 2 машин.

XOR(2, 1) — самый ненадежный способ хранения данных, так как позволяет потерять не более одной машины.



Заключение

Основными целями использования распределенной файловой системы в СберТехе являются:
  • Обеспечение высокой надежности
  • Минимизация затрат на содержание серверов для хранения данных
  • Предоставление инструментов для анализа данных
По результатам анализа были сделаны следующие выводы:
  • HDFS 3 превосходит HDFS 2 с точки зрения надежности.

  • HDFS 3 выигрывает с точки зрения минимизации затрат на содержание серверов, поскольку более компактно хранит данные.

  • HDFS 3 имеет тот же набор инструментов анализа данных, что и HDFS 2.
В связи с этим был сделан вывод, что HDFS 3 является рациональной заменой HDFS 2.

Использованные источники:

  • Коды Рида-Соломона.

    Часть 1

  • Коды Рида-Соломона.

    Часть 2 - арифметика полей Галуа

  • Апач Хадуп 3.0.0
Теги: #Hadoop #Apache #hdfs #hadoop 3.0
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.