Телефон: 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 (дата обращения: 29.03.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

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

Беляев Александр Александрович

студент-бакалавр факультета информационных систем и технологий Самарский государственный технический университет,

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

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

магистрант факультета информационных систем и технологий Самарский государственный технический университет,

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

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

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

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

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

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

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

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

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

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

Устойчивость к отказам

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

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

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

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

Универсальность алгоритмов

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

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

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

Подведем итоги в следующей таблице:

Таблица 1.

Сравнение алгоритмов

 

Алгоритмы повторных вычислений

Алгоритмы инкрементных вычислений

Производительность

Требуют больше вычислительных ресурсов для обработки всего главного массива данных в целом

Требуют меньше вычислительных ресурсов, но могут формировать намного более крупные пакетные представления

Устойчивость к отказам

Особенно устойчивы к ошибкам, обусловленным человеческим фактором, поскольку пакетные представления постоянно перестраиваются

Не упрощают исправление ошибок в пакетных представлениях; исправления носят произвольный характер и могут потребовать дополнительной оценки

Универсальность

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

Требуют специальной настройки; способны перенести всю свою сложность на стадию динамической обработки запросов

Заключение

Незаменимы для поддержки надежной системы обработки данных 

Могут повысить эффективность системы, но лишь в качестве дополнения алгоритмов повторных вычислений

 

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

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

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

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