Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: LI Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 30 марта 2017 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Иванов А.А., Михайлова М.В. РАСПРЕДЕЛЕННЫЕ СИСТЕМЫ ВЫЧИСЛЕНИЙ НА ПРИМЕРЕ APACHE HADOOP // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. LI междунар. студ. науч.-практ. конф. № 3(50). URL: https://sibac.info/archive/technic/3(50).pdf (дата обращения: 25.11.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

РАСПРЕДЕЛЕННЫЕ СИСТЕМЫ ВЫЧИСЛЕНИЙ НА ПРИМЕРЕ APACHE HADOOP

Иванов Андрей Алексеевич

студент, кафедра информационных и развивающих образовательных систем и технологий, Самарский государственный АСИ СамГТУ,

Россия, г. Самара

Михайлова Мария Владимировна

магистрант, кафедра информационных и развивающих образовательных систем и технологий, Самарский государственный АСИ СамГТУ,

Россия, г. Самара

Тимофеев Александр Вадимович

научный руководитель,

канд. пед. наук, доцент кафедры информационных и развивающих образовательных систем и технологий, Самарский государственный АСИ СамГТУ,

Россия, г. Самара

Шаврин Вадим Юрьевич

научный руководитель,

старший преподаватель кафедры информационных и развивающих образовательных систем и технологий, Самарский государственный АСИ СамГТУ,

Россия, г. Самара

Масштабируемость

Словом масштабируемость слишком часто разбрасываются, поэтому выясним тщательно, что же оно обозначает в контексте информационных систем.

Масштабируемость — это способность системы поддерживать свою производительность при увеличении нагрузки вводом дополнительных ресурсов. Нагрузка в контексте больших данных обозначает сочетание общего объема имеющихся данных с объемом ежедневно получаемых новых данных, количеством запросов, обслуживаемых приложением каждую секунду, и т.д.

Еще важнее, что масштабируемая система является линейно масштабируемой. В частности, линейно масштабируемая система способна поддерживать свою производительность при увеличении нагрузки за счет ввода дополнительных ресурсов пропорционально растущей нагрузке. И хотя нелинейно масштабируемая система также считается масштабируемой, пользы от нее не очень много. Допустим, количество требующихся машин находится в квадратической зависимости от нагрузки на систему, как показано на рис. 1. Затраты на эксплуатацию такой системы могут со временем значительно возрасти. Так, если нагрузка на систему увеличится в 10 раз, то затраты на ее эксплуатацию - в 100 раз. Такая система неосуществима с точки зрения затрат.

 

Рисунок 1. Нелинейная масштабируемость.

 

Если система является линейно масштабируемой, затраты на ее эксплуатацию возрастают пропорционально нагрузке. И это очень важное свойство информационной системы.

Что масштабируемость не означает

Как ни странно, масштабируемая система совсем не обязательно должна быть в состоянии повышать свою производительность вводом дополнительных машин. Допустим, имеется веб-сайт, обслуживающий статическую HTML-страницу. Допустим также, что каждый веб-сервер способен обслужить 1000 запросов в секунду с допустимой задержкой 100 миллисекунд. Сократить эту задержку обслуживания веб-страницы не удастся вводом дополнительных машин, поскольку отдельный запрос не распараллеливается и должен быть обслужен одной машиной. Но при увеличении количества запросов в секунду можно масштабировать веб-сайт, введя дополнительные веб-серверы, чтобы распределить нагрузку на обслуживание HTML-страницы.

Вертикальное масштабирование — увеличение производительности всех компонентов системы для повышения общей производительности. Здесь масштабируемость выступает в виде замены компонентов системы на более мощные и быстрые в зависимости от развития технологий. Это самый простой способ масштабирования.

Горизонтальное масштабирование — разделение системы на меньшие компоненты и разделению их по отдельным физическим машинам, также увеличение количества серверов. Данный тип масштабирования позваоляет нам добавлять новые к системе новые процессоры, сервера, узлы для увеличения всей производительности.

Существует сильная и слабая масштабируемость. Сильная показывает, как изменяется общее время решения задачи от количества процессоров, не изменяя общий объем задачи. Слабая масштабируемость показывает, как изменяется общее время решения задачи от количества процессоров, не изменяя объем задачи для одного процессора или узла.

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

Мы обсудили понятие масштабируемости для того, чтобы подготовить почву для представления MapReduce — парадигмы распределенных вычислений, с помощью которой можно реализовать уровень пакетной обработки. При дальнейшем рассмотрении этой парадигмы следует иметь в виду ее линейную масштабируемость. Так, если размер главного массива данных увеличивается вдвое, то в той же степени возрастает и количество серверов, на которых можно строить пакетные представления при той же самой задержке обработки запросов.

Масштабируемость Hadoop-систем в значительной степени зависит от характеристик обрабатываемых данных, прежде всего, их внутренней структуры и особенностей по извлечению из них необходимой информации, и сложности задачи по обработке, которые, в свою очередь, диктуют организацию циклов обработки, вычислительную интенсивность атомарных операций, и, в конечном счёте, уровень параллелизма и загруженность кластера.

Одной из основных целей Hadoop-системы изначально было обеспечение горизонтальной масштабируемости кластера посредством добавления недорогих узлов без прибегания к мощным серверам и дорогим сетям хранения данных. Функционирующие кластеры размером в тысячи узлов подтверждают осуществимость и экономическую эффективность таких систем, так, по состоянию на 2011 год известно о крупных кластерах Hadoop в Yahoo (более 4 тыс. узлов с суммарной ёмкостью хранения 15 Пбайт), Facebook (около 2 тыс. узлов на 21 Пбайт) и Ebay (700 узлов на 16 Пбайт). Тем не менее, считается, что горизонтальная масштабируемость в Hadoop-системах ограничена, для Hadoop до версии 2.0 максимально возможно оценивалась в 4 тыс. узлов при использовании 10 MapтReduce-заданий на узел. Во многом этому ограничению способствовала концентрация в модуле MapReduce функций по контролю за жизненным циклом заданий, считается, что с выносом её в модуль YARN в Hadoop 2.0 и децентрализацией — распределением части функций по мониторингу на узлы обработки — горизонтальная масштабируемость повысилась.

В любом случае в системе с плохой масштабируемостью добавление ресурсов приводит к незначительному повышению производительности, а иногда добавление ресурсов не даёт никакого полезного эффекта.

 

Список литературы:

  1. Марц, Натан, Уорен, Джеймс. Большие данные: принципы и практика построения масштабируемых систем обработки данных в реальном времени.: Пер. с англ. — М. : ООО “И.Д.Вильямс”, 2016 – 368 с.
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.