УДК 004.072.4
ИССЛЕДОВАНИЕ РАСПРЕДЕЛЕННОЙ ОБРАБОТКИ ДАННЫХ НА ПРИМЕРЕ СИСТЕМЫ HADOOP
А. А. Гусейнов, И. А. Бочкова Научный руководитель - Е. П. Моргунов
Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева
Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31 Е-mail: [email protected], [email protected]
Рассматривается архитектура распределенных вычислений, заключающаяся в параллельной обработке заданий. Проанализирована модель системы с параллельно работающими узлами и обрабатывающая большие объемы данных.
Ключевые слова: большие данные, hadoop, HDFS, MapReduce, кластер.
RESEARCH OF THE DISTRIBUTED DATA PROCESSING ON THE EXAMPLE
OF THE HADOOP SYSTEM
A. A. Guseinov, I. A. Bochkova Scientific Supervisor - E. P. Morgunov
Reshetnev Siberian State Aerospace University 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation Е-mail: [email protected], [email protected]
In our work we consider the architecture of distributed computing, which consists of parallel processing tasks. There was analyzed a model of system with parallel operating units which handles large amount of data.
Keyword: Big Data, Hadoop, HDFS, MapReduce, cluster.
Для реализации системы обработки больших объемов данных стоит задача создания макетного приложения. Приложение демонстрирует распределенную на несколько машин обработку больших данных на примере подсчета одинаковых слов в текстовых наборах данных.
Большие данные (Big Data) в информационных технологиях - серия подходов, инструментов и методов обработки структурированных и неструктурированных данных огромных объёмов [1]. Обычно набор данных приходится распределять по нескольким разным машинам. Поскольку эти машины работают в сети, администратору системы приходится учитывать все сложности сетевого программирования. Одной из проблем работы с большими объемами данных является трудность их передачи между серверами для последующей обработки. Также из-за большого числа узлов возможны частые сбои отдельных узлов, поэтому вопрос надежности также является очень важным. Данную проблему можно решить с помощью технологий Hadoop Distributed Filesystem (HDFS) и MapReduce.
HDFS - распределенная файловая система Hadoop. Кластер HDFS состоит из двух типов узлов, работающих по схеме «управляющий - подчиненный»: узел имен (управляющий) NameNоde-сервер и несколько узлов данных (подчиненные) DataNode-серверы. Узел имен управляет пространством имен файловой системы. Name^de поддерживает дерево файловой системы и метаданные всех файлов и каталогов. Для увеличения производительности передача данных осуществляется только между клиентом и DataNode-сервером. Для обеспечения отказоустойчивости используется механизм репликации данных, то есть один и тот же блок данных хранится на нескольких DataNode-серверах в виде последовательности блоков фиксированного размера (см. рисунок). Копии блоков (реплики) хранятся на нескольких серверах, по умолчанию - трех. Их размещение происходит следующим образом:
- первая копия находится на локальном DataNode;
- вторая копия на другом DataNode данной стойки (Rack);
Секция «Программные средства и информационные технологии»
- третья копия на любой DataNode другой стойки;
- остальные копии распределяются произвольным способом.
При чтении данные выбираются таким образом, чтобы клиент находился как можно ближе к серверу DataNode.
Блоки HDFS по умолчанию 64 Мбайт. Это сделано для того, чтобы уменьшить количество операций позиционирования. При достаточно большом размере блока доля времени, затрачиваемого на передачу данных с диска, на несколько порядков больше, чем время, затрачиваемое на позиционирование на начало следующего блока. Таким образом, время передачи большого файла, состоящего из многих блоков, определяется только скоростью передачи данных, так как временем, затрачиваемым на позиционирование, можно пренебречь.
MapReduce - это платформа для вычисления некоторых наборов распределенных задач с использованием большого количества компьютеров (называемых «нодами»), образующих кластер [2]. Работа платформы заключается в использовании двух функций - Map и Reduce. Каждая фаза использует в качестве входных и выходных данных пары «ключ - значение», типы которых выбираются программистом.
Строение файловой структуры NDFS
Функция Map осуществляет предварительную обработку, этот этап хорошо подходит для исключения нежелательных записей: здесь отфильтровываются отсутствующие, сомнительные или ошибочные значения. Входные данные обрабатываются следующим образом: главный узел (Master node), получая входные данные задачи, разделяет данные на части и распределяет их между рабочими узлами (Worker node). Параллельно на каждом рабочем узле происходит обработка сырых данных. Результат работы функции Map передается функции Reduce в виде пар «ключ - значение».
Reduce-функция производит свертку данных, обработанных функцией Map. Master node получает ответы от рабочих узлов и формирует решение поставленной задачи.
Для демонстрации работы программы были взяты текстовые наборы данных общим объемом 1,20 Гб. В макетном приложении функция Map формирует массив данных «ключ - значение», где ключом является слово, а значением - количество его повторений. Функция Reduce принимает массивы от рабочих узлов и формирует итоговый массив на основе полученных данных, т. е. значения элементов массива с одинаковыми ключами суммируются и записываются в выходной файл. Результаты тестирования представлены в сводной таблице.
Результаты тестирования
Количество узлов Объем данных Затраченное время
1 1,2 Гб 4 минуты 30 секунд
2 2 минуты 25 секунд
3 1 минута 40 секунд
Исходя из результатов тестирования, можно сделать вывод, что время считывания данных с диска пропорционально количеству этих дисков. Таким образом, распараллеливая вычисления на несколько машин, можно работать с большими объемами данных - Big Data.
Библиографические ссылки
1. Уайт Т. Hadoop: подробное руководство. СПб. : Питер, 2013. 672 с.
2. Hadoop: Документация [Электронный ресурс] // Hadoop : офиц. сайт. URL: http://hadoop.apache.org/docs/ (дата обращения: 17.03.2016).
3. Лэм Ч. Hadoop в действии. М. : ДМК Пресс, 2012. 424 с.
© Гусейнов А. А., Бочкова И. А., 2016