Технология построения защищенных распределенных приложений



Pdf көрінісі
бет2/30
Дата05.02.2024
өлшемі0.74 Mb.
#490871
түріРеферат
1   2   3   4   5   6   7   8   9   ...   30
Хадуп

ЛАБОРАТОРНАЯ РАБОТА № 1. 
РАЗВЕРТЫВАНИЕ СИСТЕМЫ РАСПРЕДЕЛЕННЫХ 
ВЫЧИСЛЕНИЙ HADOOP 
1.1 Цель работы 
Цель лабораторной работы заключается в закреплении теоретических 
основ 
курса 
«Технологии 
построения 
распределенных 
защищенных приложений» и получении первоначальных навыков настройки и 
использования системы Hadoop. 
1.2 Общие сведение 
Hadoop — популярная программная платформа (software framework) 
построения распределенных приложений для массово-параллельной обработки 
(massive parallel processing, MPP) данных в рамках вычислительной парадигмы 
MapReduce. 
Hadoop cчитается одним из основополагающих решений в области 
«больших данных» (big data). Вокруг Hadoop образовалась целая экосистема из 
связанных проектов и технологий. 
1.2.1 Архитектура Hadoop 
Hadoop состоит из четырёх модулей: 
 связующее программное обеспечение Hadoop Common; 
 распределённая файловая система HDFS; 
 система для планирования заданий и управления кластером; 
 платформа программирования и выполнения распределённых 
MapReduce вычислений Hadoop MapReduce. 
В Hadoop Common входят библиотеки управления файловыми системами, 
поддерживаемыми Hadoop, и сценарии создания необходимой инфраструктуры 
и управления распределённой обработкой. 
HDFS (Hadoop Distributed File System) — файловая система, 
предназначенная для хранения файлов больших размеров, поблочно 
распределённых между узлами вычислительного кластера. Все блоки в HDFS 
(кроме последнего блока файла) имеют одинаковый размер, и каждый блок 
может быть размещён на нескольких узлах, размер блока и коэффициент 
репликации (количество узлов, на которых должен быть размещён каждый 
блок) определяются в настройках на уровне файла. Благодаря репликации 
обеспечивается устойчивость распределённой системы к отказам отдельных 
узлов. Файлы в HDFS могут быть записаны лишь однажды (модификация не 
поддерживается), а запись в файл в одно время может вести только один 
процесс. Организация файлов в пространстве имён — традиционная 
иерархическая: есть корневой каталог, поддерживается вложение каталогов, в 
одном каталоге могут располагаться и файлы, и другие каталоги. 



Развёртывание экземпляра HDFS предусматривает наличие центрального 
узла имён (name node), хранящего метаданные файловой системы и 
метаинформацию о распределении блоков, и серии узлов данных (data node), 
непосредственно хранящих блоки файлов. Узел имён отвечает за обработку 
операций уровня файлов и каталогов — открытие и закрытие файлов, 
манипуляция с каталогами, узлы данных непосредственно отрабатывают 
операции по записи и чтению данных. Узел имён и узлы данных снабжаются 
веб-серверами, отображающими текущий статус узлов и позволяющими 
просматривать содержимое файловой системы. 
HDFS является неотъемлемой частью проекта, однако, Hadoop 
поддерживает работу и с другими распределёнными файловыми системами без 
использования HDFS, поддержка Amazon S3 и CloudStore реализована в 
основном дистрибутиве. С другой стороны, HDFS может использоваться не 
только для запуска MapReduce-заданий, но и как распределённая файловая 
система общего назначения, в частности, поверх неё реализована 
распределённая NoSQL-СУБД HBase, в её среде работает масштабируемая 
система машинного обучения Apache Mahout. 
YARN (англ. Yet Another Resource Negotiator — «ещё один ресурсный 
посредник») — модуль, появившийся с версией 2.0 Hadoop, отвечающий за 
управление ресурсами кластеров и планирование заданий. Если в предыдущих 
выпусках эта функция была интегрирована в модуль MapReduce, где была 
реализована единым компонентом (JobTracker), то в YARN функционирует 
логически 
самостоятельный 
демон — планировщик 
ресурсов 
(ResourceManager), абстрагирующий все вычислительные ресурсы кластера и 
управляющий их предоставлением приложениям распределённой обработки. 
Работать под управлением YARN могут как MapReduce-программы, так и 
любые 
другие 
распределённые 
приложения, 
поддерживающие 
соответствующие программные интерфейсы. YARN обеспечивает возможность 
параллельного выполнения нескольких различных задач в рамках кластера и их 
изоляцию (по принципам мультиарендности). Разработчику распределённого 
приложения необходимо реализовать специальный класс управления 
приложением (ApplicationMaster), который отвечает за координацию заданий в 
рамках тех ресурсов, которые предоставит планировщик ресурсов; 
планировщик ресурсов же отвечает за создание экземпляров класса управления 
приложением и взаимодействия с ним через соответствующий сетевой 
протокол. 
Hadoop MapReduce — программный каркас для программирования 
распределённых вычислений в рамках парадигмы MapReduce. Разработчику 
приложения для Hadoop MapReduce необходимо реализовать базовый 
обработчик, который на каждом вычислительном узле кластера обеспечит 
преобразование исходных пар «ключ — значение» в промежуточный набор пар 
«ключ — значение» (класс, реализующий интерфейс Mapper, назван по 
функции высшего порядка Map), и обработчик, сводящий промежуточный 
набор пар в окончательный, сокращённый набор (свёртку, класс, реализующий 
интерфейс Reducer). Каркас передаёт на вход свёртки отсортированные выводы 



от базовых обработчиков, сведе́ние состоит из трёх фаз — shuffle (тасовка, 
выделение нужной секции вывода), sort (сортировка, группировка по ключам 
выводов от распределителей — досортировка, требующаяся в случае, когда 
разные атомарные обработчики возвращают наборы с одинаковыми ключами, 
при этом правила сортировки на этой фазе могут быть заданы программно и 
использовать какие-либо особенности внутренней структуры ключей) и 
собственно reduce (свёртка списка) — получения результирующего набора. Для 
некоторых видов обработки свёртка не требуется, и каркас возвращает в этом 
случае набор отсортированных пар, полученных базовыми обработчиками. 
Hadoop MapReduce позволяет создавать задания как с базовыми 
обработчиками, так и со свёртками, написанными без использования Java: 
утилиты Hadoop streaming позволяют использовать в качестве базовых 
обработчиков и свёрток любой исполняемый файл, работающий со 
стандартным вводом-выводом операционной системы (например, утилиты 
командной оболочки UNIX), есть также SWIG-совместимый прикладной 
интерфейс программирования Hadoop pipes на C++. Также, в состав 
дистрибутивов Hadoop входят реализации различных конкретных базовых 
обработчиков и свёрток, наиболее типично используемых в распределённой 
обработке. 


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   30




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет