Главная страница
Навигация по странице:

  • Целью выпускной квалификационной работы

  • Объектом исследования

  • 1. Обзор и анализ программного обеспечения для организации распределенных вычислительных систем.

  • 1.1. Фреймворк Apache Hadoop

  • Архитектура Apache Hadoop Взаимодействие модулей представлено на рисунке 1. 25 Рисунок 1 - Взаимодействие модулей Hadoop  Cluster (Кластер)

  • YARN

  • HDFS

  • Главный или ведущий узел (NameNode)

  • Узел данных (DataNode)

  • 1.2. Программная платформа BOINC

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


    Скачать 0.59 Mb.
    НазваниеПроектирование инфраструктуры и реализация распределенного информационновычислительного кластера на базе персональных компьютеров
    АнкорТехнологии
    Дата29.01.2022
    Размер0.59 Mb.
    Формат файлаpdf
    Имя файлаTPU414708.pdf
    ТипДиссертация
    #345769
    страница2 из 4
    1   2   3   4
    Введение
    На сегодняшний день существует масса задач, которые требуют высокопроизводительные вычислений, и с каждым днем их становиться больше.
    Зачастую такие задачи выполняются на одном высокопроизводительном компьютере, за исключением тех случаев, когда институт, лаборатория, предприятие и др., обладают суперкомпьютером. Одной из таких задач является набирающая популярность тема обработки больших данных, в связи с тем, что о человеке, собирается информация повсюду, будь то мобильное устройство, ноутбук или персональный компьютер в компании.
    Помимо того, что информация собирается, ее нужно, где-то хранить. Отсюда следует, что одной из проблем является хранение больших объемов данных.
    Сразу стоит отметить, что в данном исследовании нас не интересует обработка в реальном времени, так как реальные персональные компьютеры, даже объединенные в один кластер, через сеть, не могут идти ни в какое сравнение с высокопроизводительным кластером, состоящим из 1000 ядер и соединённых быстрыми шинами передачи данных. В данном исследовании, одним из вариантов реального использования разработанного программного обеспечения
    - это хранение и размещение больших данных, а здесь режим реального времени не всегда обязателен, так как это ни критично, если программа проработает лишний час. Хотелось бы сразу отметить, что, конечно, такие крупные гиганты как Google умеют решать такие проблемы, путем постройки для себя огромных высокопроизводительных ЦОДов, но, к сожалению, не каждый может построить по такому ЦОДу. В связи с этим, данное исследование будет полезно для тех, кто не может построить себе ЦОД, зато имеет некоторое количество персональных компьютеров.
    Целью выпускной квалификационной работы является разработка программного инструментария для формирования информационно- вычислительных кластеров на базе персональных компьютеров. Для достижения цели необходимо было решить следующие задачи:

    19
     формирование информации об инфраструктуре проектируемого кластера на базе персональных компьютеров;
     разработка методов и алгоритмов организации взаимодействия узлов информационно-вычислительного кластера;
     разработка обобщенной функциональной структуры информационно-вычислительного кластера;
     исследование эффективности работы информационно- вычислительного кластера;
     организации распределенного хранилища данных.
    Объектом исследования в данной работе выступают способы организации распределенных вычислительных систем.
    Предметом исследования является задача разработки программного обеспечения реализующего инструментарий для формирования информационно-вычислительных кластеров на базе персональных компьютеров.
    Научная новизной является организация комплексного подхода к проектированию и реализации информационно-вычислительного кластера корпорации на базе персональных компьютеров.
    Краткое изложение основного содержания работы
    В первой главе проведен обзор и анализ программного обеспечения для организации распределенных вычислительных систем, а именно: фреймворка
    Apache Hadoop, программной платформы BOINC, программного обеспечения
    HTCondor, инструментария Globus Toolkit и платформы Unicore.
    Во второй главе было проведено исследование эффективности информационно-вычислительного кластера на базе персональных компьютеров, а именно были произведены тесты производительности с участием одного, двух, трех узлов вычислений.
    В третьей главе приводится разработка архитектуры распределенной вычислительной системы на базе персональных компьютеров. Показаны основные компоненты распределенной вычислительной системы на базе ПК,

    20 модули, входящие в состав кластера, схемы взаимодействий в кластере и организация распределенного файлового хранилища данных.
    В четвертой главе приведена технологическая схема реализации и использования информационно-вычислительного кластера на базе ПК.
    Проиллюстрирована работа разработанного программного обеспечения.
    В пятой главе приведен анализ финансово-экономических аспектов научно-исследовательской работы с целью оценки трудовых и денежных затрат, направленных на реализацию данного исследования.
    В шестой главе приведен анализ различных вредных и опасных факторов производственной среды для пользователей персональных компьютеров при работе с разработанным программным продуктом.

    21
    1. Обзор и анализ программного обеспечения для организации
    распределенных вычислительных систем.
    Для начала необходимо отметить, что распределенные вычислительные системы, основанные на добровольных вычислениях, строятся на базе обычных компьютеров и выгодно отличаются от суперкомпьютеров тем, что для организации связи между узлами может быть использована технология
    Ethernet [11]. В связи с этим, обычные персональные компьютеры, могут быть объединены в распределенную вычислительную систему. Ресурсы, полученные после объединения, могут быть использованы для решения последующих задач.
    Для распределенных вычислительных систем характерны особенности:
     масштабируемость;
     отсутствие синхронности в работе, так как нет единого времени работы компонентов входящих в узлы системы;
     отсутствие общей памяти, в связи с этим необходима организация взаимодействия между узлами системы;
     узлы системы могут быть территориально распределены;
     узлы системы независимы и гетерогенны. Узлы, входящие в распределенную вычислительную систему, могут иметь различные параметры, такие как производительность, количество оперативной памяти и других характеристик. Узлы могут предоставлять необходимые ресурсы для пользы кластера.
    Распределенная система может обладать следующими свойствами:
     прозрачность;
     открытость;
     безопасность;
     масштабируемость.
    Прозрачность распределенной системы – это способность системы скрывать свою распределенную природу, такую как распределение ресурсов, процессов и др., от пользователя и представляться для него единой системой.

    22
    Открытая распределенная система – это способность системы предоставлять службы, вызов которых предполагает стандартный синтаксис и семантику. Службы в распределенных системах определяются через интерфейсы. Распределенная система должна обладать способностью к взаимодействию, то есть предоставлять необходимый интерфейс по просьбе другого процесса. Так же компоненты разных производителей должны иметь способность совместно работать. Для этого необходимо, чтобы они соответствовали общему стандарту. Для открытой системы характерна переносимость, то есть способность системы, одинаково исполняться на каждом из узлов кластера, не завися от его параметров. Гибкость открытой системы, это способность простого конфигурирования системы.
    Масштабируемость – это способность распределенной вычислительной системы, эффективно работать при увеличении числа узлов. Систему считают масштабируемой, если она способна увеличивать свою производительность при включение нового узла. Масштабируемость делят на следующие направления:
     вертикальная и горизонтальная масштабируемость. Горизонтальная масштабируемость – это включение в кластер новых узлов. Для вертикальной характерна способность системы увеличивать свою производительность, например заменой комплектующих;
     территориальная масштабируемость – это возможность системы сохранять свою производительность при географическом разнесении компонентов системы;
     административная масштабируемость предоставляет простоту обслуживания различными организациями одной распределенной системой.
    Общедоступные ресурсы [12] входящие в распределенную вычислительную систему включают:
     Ресурсы хранения – это способность системы, реализовать универсальный интерфейс по передаче и управлению данными. Основной характеристикой является объем.

    23
     Вычислительные ресурсы – это способность системы, предоставлять пользователям процессорные мощности для вычислений.
    Ресурсами являются как узлы кластера, так и в целом кластер. Основной характеристикой является производительность.
     Информационные ресурсы каталоги – один из видов ресурсов хранения, характеризующиеся хранением метаданных о других узлах системы.
     сетевой ресурс - это связь между узлами кластера. Основой характеристикой является скорость передачи данных.
    1.1. Фреймворк Apache Hadoop
    Проект фонда Apache Software Foundation, свободно распространяемый набор утилит, библиотек и фреймворк, для разработки и выполнений распределенных вычислительных программ, которые состоят из кластеров, в которые входят сотни и тысячи узлов [1]. Используется для реализации поисковых и контекстных механизмов высоконагруженных веб-сайтов, например: Yahoo и Facebook. Проект написан на Java в рамках модели
    MapReduce [2].
    Данное программное обеспечение включает в себя четыре модуля:
     Hadoop Common – это набор библиотек и утилит для управления файловыми системами и распределенной обработкой;
     HDFS – распределенная файловая система, предназначение которой, хранение файлов больших размеров;
     YARN – система планирования заданий и управления кластером;
     Hadoop MapReduce – платформа программирования и выполнения распределенных MapReduce-вычислений.
    Hadoop Common
    Состоит из библиотек управления файловыми системами, которые поддерживает Hadoop, а так же сценарии создания инфраструктуры и управления РВС, специально для удобства был сделан интерпретатор строки.

    24
    Большая часть команд сделана по аналогии с Unix – системами для удобства пользователей.
    HDFS
    Hadoop Distributed File System – распределенная файловая система, предназначение которой, хранить файлы больших объемов, которые в свою очередь поблочно распределены между узлами кластера. Все блоки HDFS имеют одинаковый размер, и каждый блок размещен в нескольких узлах кластера. Репликация делает кластеры отказоустойчивыми. При развертывание
    HDFS существует необходимость в центральном узле, который хранит метаданные файловой системы и др. информацию.
    YARN
    Yet Another Resource Negotiator – данный модуль отвечает за планирование заданий и управление ресурсами кластера. Предоставляет возможность работы нескольких задач параллельно в рамках кластера, при этом обеспечивая их изоляцию.
    Hadoop MapReduce
    Представляет собой каркас программирования РВС. Особенность данного модуля в том, что разработчику необходимо реализовать обработчик, который на каждом узле кластера обеспечит преобразования пар «key-value» в промежуточный набор, а так же обработчик, который сводит промежуточный набор в окончательный [3].
    Архитектура Apache Hadoop
    Взаимодействие модулей представлено на рисунке 1.

    25
    Рисунок 1 - Взаимодействие модулей Hadoop
    Cluster (Кластер) – состоит из набора узлов (компьютеров), является аппаратной частью инфраструктуры, может быть разделен на стойки.
    YARN – фреймворк, отвечающий за предоставление вычислительных ресурсов (память, процессор и др.). Содержит два важных элемента:
    1. Менеджер ресурсов один на каждый кластер, располагается на главном узле в кластере. Данный менеджер позволяет знать, где располагаются дочерние узлы и сколько ресурсов имеется в наличие. Сюда же входит планировщик ресурсов. Подробнее о данном модуле можно увидеть на рисунке
    2.
    Менеджер Ресурсов
    Мониторинг ведущих «живых» приложений
    Планировщик ресурсов
    Несколько обработчиков событий
    Мониторинг
    «живых» узлов кластера
    Рисунок 2 - Архитектура Менеджера ресурсов
    MapReduce Framework
    YARN
    HDFS
    Storage
    Cluster

    26 2. Менеджер узлов располагается на каждом кластере и является дочерним узлом инфраструктуры. При запуске узла, он оповещает о себе менеджеру ресурсов, а так же периодически отправляет сигнал, о том, что он
    «жив». Каждый менеджер узла предлагает некоторое количество ресурсов для кластера. Во время работы планировщик ресурсов будет решать, каким образом использовать предлагаемые ему ресурсы. Подробнее о работе можно увидеть на рисунке 3.
    Менеджер узлов
    Контейнер #1
    Контейнер #2
    Контейнер #3
    Рисунок 3 - Архитектура менеджера узлов
    Контейнер представляет собой часть емкости менеджера узла и используется клиентом для выполнения программ.
    HDFS – как и описывалось ранее это фреймворк, который отвечает за обеспечение постоянного, надежного и распределенного хранения данных.
    Storage – Альтернативное хранилище данных, например: Amazon и его S3.
    MapReduce – представляет программный уровень реализации модели MapReduce.
    Важно отметить, что YARN и HDFS полностью независимы друг от друга, первый предоставляет ресурсы для запуска приложения, второй обеспечивает хранение. Ниже мы рассмотрим, как запускается приложения с помощью YARN (рисунок 4).

    27
    Клиент
    Менеджер
    Ресурсов
    Менеджер узла #1
    Менеджер узла #2
    Менеджер узла #3
    Менеджер узла #4
    Менеджер узла #5
    Рисунок 4 - Запуск приложения YARN
    В данном модуле учувствуют как минимум три актера:
     Клиент – создает и отправляет задания.
     Менеджер ресурсов – он же мастер.
     Менеджер узлов.
    Алгоритм работы представляется в следующем и отображен на рисунке
    5.
    1. Клиент подает заявку менеджеру ресурсов.
    2. Менеджер ресурсов связывает с планировщиком ресурсов и назначает контейнер.
    3. Менеджер ресурсов связывает менеджера узла с контейнером.
    4. Менеджер узлов запускает контейнер.
    5. Контейнер выполняет ведущие приложение.

    28
    Клиент
    Менеджер ресурсов
    Планировщик ресурсов
    Менеджер узлов #X
    Контейнер #Y
    Ведущие приложение
    1 2
    3 4
    5
    Рисунок 5 - Алгоритм работы
    Ведущее приложение отвечает за выполнение только одного приложения. В случае необходимости он просит контейнеры у планировщика ресурсов (менеджер ресурсов), а так же выполняет специальные команды.
    Единственной точкой отказа в YARN, является Менеджер ресурсов, но
    YARN распространяет метаданные связанные с запущенными приложениями между кластерами. Это позволяет снизить нагрузку на Менеджер ресурсов и быстрее восстановить его в случае необходимости.
    Архитектура HDFS
    Описание что такое HDFS было описано выше, здесь будет рассмотрено, как происходит запись в Hadoop и алгоритм действий, а так же опишем все ключевые моменты.
    Состоит из узлов трех типов:
    Главный или ведущий узел (NameNode) – обычно 1 на кластер, в нем хранятся все метаданные системы.
    Второстепенный узел (SecondaryNode) – предназначается для быстрого восстановления главного узла, в случае выхода его из строя. Не является копией главное узла, а периодически проводит слияние состояния файловой системы и логов.

    29
    Узел данных (DataNode) – хранит непосредственно блоки файлов, таких узлов множество в кластере. Данный узел постоянно отправляет свой статус главному узлу, а так же периодически отправляет отчет обо всех хранимых на этом узле блоках, необходим для поддержания нужного уровня репликации.
    Алгоритм записи данных в HDFS:
    1. Клиент формирует из файла, цепочку блоков нужного размера.
    2. Клиент соединяется с главным узлом и производит запрос на запись. В запрос входит кол-во блоков и нужный уровень репликации.
    3. Главный узел отвечает клиенту цепочкой из узлов данных.
    4. Клиент соединяется с данной цепочкой и производит запись первого блока своего нарезанного файла, на первый узел, этот узел данных делает запись на второй узел и т.д. В случае если клиенту не удалось подключиться к первому узлу, он делает попытку подключения ко второму и т.д. Если не получилось не с одним, то происходит откат.
    5. По завершению, клиенту присылается ответ об успешной записи.
    6. Сразу после того как клиент получил подтверждение об успешной записи, он оповещает об этом главный узел, и тот в свою очередь отправляет цепочку узлов данных для второго блока и повторяются шаги 4-6.
    Пример работы алгоритма представлен на рисунке 6.

    30
    Клиент
    Главный узел
    Узел данных
    Узел данных
    2 3
    3 4
    4 5
    5
    Рисунок 6 - Алгоритм работы HDFS
    1.2. Программная платформа BOINC
    Открытая инфраструктура Беркли для РВС (анг. Berkeley Open
    Infrastructure for Network Computing ) – это открытая программная платформа для GRID-вычислений [4]. Используется, чтобы в кратчайшие сроки организовать распределенные вычисления. На сегодняшний день является универсальной платформой для проектов в различных областях: физика, математика и др. Дает возможность исследователю использовать вычислительный мощность ПК со всего мира. На данной платформе существует множество различных проектов.
    Состоит из Серверной и клиентской части:
    Сервер
    Сам сервер состоит из веб-сайта проекта расположенного на
    Http-сервере, базы данных MySQL и набора управляющих демонов (планировщики, валидатор, генератор задание и др.). Сам сервер располагается только на Linux. Сервер представляет собой набор Php-скриптов которые необходимы для общего управления проектом. В базе данных хранятся пароли, записи заданий и др.
    Клиент

    31
    Это универсальный клиент, который позволяет пользователю участвовать в проектах на BOINC платформе, пользователь может учувствовать в нескольких проектах. В качестве интерфейса, клиенту устанавливается отдельное приложение, работа которого и заключается в мониторинге и управление клиентом, так как сам клиент работает по технологии TCP/IP и работает в фоне. Для работы использовать менеджер не обязательно.
    Архитектура BOINC
    Архитектура представлена на рисунке 7, подробнее о каждом элементе будет рассказано после рисунка.
    Администратор
    База данных
    Веб-сервер
    Планировщик
    Клиент
    Служба обработки
    Служба подачи
    Служба проверки
    Служба освоения
    Служба удаления мост
    Фоновые службы
    Регистрация задания
    Разделяемая память
    Соединение и запрос задания, получение и отсылка результа
    GRID
    Рисунок 7 - Архитектура BOINC

    32
    Как можно видеть из рисунка выше, сервер состоит из множества модулей, которые выполняют определенные задачи. Также к серверу в случае необходимости могут быть присоединены Grid-сети, построенные с использованием инструментария Globus Toolkit, подробнее об этом поговорим, в конце данного раздела. Перейдем к детальному рассмотрению модулей архитектуры:
     Веб-сервер – предназначен в первую очередь для привлечения новых участников. Обычно отображает статистику и др. информацию. Пример: сайт проекта ClimatePrediction.Net.
     База данных – это сердце проекта. Здесь хранится информация о пользователях и связанные с этим пользователем хосты, о приложениях, результатах вычислений и др. Производительность сервера сильно зависит именно от базы данных, так как основная нагрузка по обмену информации связана с ней.
     Служба обработки состояния подзадач – фоновая служба, предназначение которой обработка состояний вычислительных подзадач и результатов их решения. Служба проверяет состояния подзадач и результатов вычислений в БД и обновляет их. Служба ресурсоемкая и может сильно нагружать процессор, поэтому ее можно разбить на некоторое кол-во процессов, каждый из которых может работать на разных серверах.
     Служба проверки – организует проверку полученных результатов, так как для достоверности подзадачи считаются на разных клиентах, то служба занимается сверкой этих результатов для получения более точного результата.
     Служба освоения – отвечает за проверку наличия завершенных задач, а дальше работает в зависимости от функций прописанных администратором. Это может быть запуск новой задачи или отправка результатов и т.д.
     Служба удаления – занимается очисткой системы от завершенных и освоенных подзадач.

    33
     Служба подачи – вспомогательная служба, которая передает необработанные задачи в разделяемую память. Эта служба призвана разгрузить нагрузку на БД, ограничив к ней число запросов.
     Планировщик – служба, являющаяся связующим звеном в работе с клиентом. Она отвечает за назначение подзадач клиентам, так как знает информацию об их ПК и настройках. Так же принимает отчет о работе от клиентов.
     Мост – эта служба позволяет производить совместную работу проекта с инфраструктурой BOINC и стандартной GRID.
    1   2   3   4


    написать администратору сайта