Модель распределенных вычислений MapReduce - Технологии больших данных: анализ и выбор решения для реализации проекта
Программная модель данных, получившая название "MapReduce", была создана несколько лет назад в компании Google, и там же была осуществлена первая реализация этой технологии на основе распределенной файловой системы Google File System. Этот проект активно используется в программных продуктах самой компании Google, но является частным и недоступен для использования вне продуктов Google.
Существует так же иная реализация в свободном доступе - Hadoop MapReduce (с открытыми исходными текстами), которая была выполнена в проекте Apache Hadoop. технология основана на использовании распределенной файловой системы HDFS (Hadoop Distributed File System)[4]. Наибольшую популярность MapReduce получила благодаря реализации проекта Hadoop, несомненную значимость имел факт доступности и открытости программного кода. Широкое использование технологии Hadoop MapReduce в различных проектах (большей частью в исследовательских) приносит большую пользу, стимулируя разработчиков к постоянному совершенствованию технологии.
В модели MapReduce все операции вычисления производятся над множествами пар (входных данных), именуемых "ключ-значение". В результате каждого вычисления также производится определенное множество выходных пар "ключ-значение". Для представления вычислений в среде MapReduce используются две ключевые функции: "Map" и "Reduce". Обе функции в явном виде кодируются разработчиками приложений в среде программирования MapReduce.
Реализации проектов на MapReduce ориентированы на использование среде распределенных кластеров со следующими характеристиками:
Узлы среды выполнения приложений обычно представляют собой компьютеры общего назначения с операционной системой Linux;
Кластер состоит из сотен или тысяч машин (вероятны отказы отдельных узлов);
Для хранения данных используются недорогие дисковые устройства, подключенные напрямую к отдельным машинам;
Используется распределенная файловая система для управления данными, хранящихся на этих дисках;
Пользователи представляют свои задания в систему планирования; каждое задание состоит из некоторого набора задач, которые отображаются планировщиком на некоторый набор узлов кластера.
Технология MapReduce предназначена для обработки больших объемов данных с использованием машин, количество которых может достигать тысяч, поэтому обязательно должна присутствовать устойчивость к отказам отдельных машин. Существует приложение-распорядитель, который периодически посылает каждому узлу (исполнителю) контрольные сообщения. Если определенный узел не отвечает на сообщение в течение установленного времени, система считает его вышедшим из строя. В этом случае все задачи уровня "Map", уже выполненные и еще выполнявшиеся этим узлом-исполнителем, переводятся в свое исходное состояние, после чего можно заново планировать их выполнение другими узлами.
Преимущества клиент-серверных организаций баз данных очевидны: в архитектуре серверы поддерживают большую базу данных, которая сохраняется в одном экземпляре и доступна десяткам и сотням приложений, выполняемых на стороне клиентов или в промежуточных серверах. Однако при использовании SQL-ориентированной организации баз данных осуществляется следующая схема работы: от клиентов на сервер БД отправляются высокоуровневые декларативные запросы, в обратную сторону, от сервера к клиенту, пересылаются результирующие данные произвольно большого объема.
Во всех традиционных серверных организациях реляционных баз данных существует возможность переноса вычислений на сторону, реализация которой не является сложной разработкой. При этом в параллельных БД (например, категория баз sharing-nothing) ситуация иная: SQL-запросы выполняются оптимизатором запросов параллельно и автоматически. Но оптимизатор не имеет возможности выполнить параллельно определенную пользователем процедуру или функцию, реализованную не на языке SQL, а на одном из традиционных языков программирования (как правило, с включением вызовов операторов SQL). Технически выполнение распараллеливания такие процедуры и функции можно не выполнять, а производить вычисления в одном узле кластера. Но тогда необходимо сохранять в текущем узле все данные, требуемые для выполнения процедуры или функции, для чего потребуется массовая пересылка данных по сети, что делает незначительными все преимущества параллельных реляционных баз данных, производительность которых основывается именно на параллельных вычислениях.
Из вышеописанных трудностей следует сделать вывод: требуется поддержка механизма распараллеливания пользовательских процедур и функций в аналитических системам баз данных, поскольку аналитикам необходимо выполнять анализ данных на клиентских рабочих станциях, постоянно получая данные из центрального хранилища большого объема [4]. Как показывает опыт многих производственных разработок, может быть применена модель MapReduce для обеспечения возможностей серверного программирования в массивно-параллельной среде систем баз данных.
Для сравнения эффективности технологий MapReduce и массивно-параллельных реляционных баз данных при решении аналитических задач необходимо отметить, что развитие и зрелость технологии параллельных баз данных категории без совместно используемых ресурсов (sharing-nothing) позволяет им обходиться кластерами (100 узлов) для поддержки самых больших на сегодняшний день аналитических баз. Размерность в петабайтах - 1015 байт - 1024 терабайт. Вместе с тем, особые качества технологии MapReduce - масштабируемость и отказоустойчивость - проявляются при применении кластеров с тысячами узлов. В связи с ростом объема данных, требующих анализа, возрастает число приложений, для поддержки которых необходимы кластеры с числом узлов, превышающим 100. Имеющиеся в настоящее время параллельные СУБД не масштабируются до сотен узлов должным образом. Это следствие следующих причин:
Массивно-параллельные СУБД проектировались в расчете на редкость отказы, поэтому при увеличении числа узлов кластера возрастает вероятность отказов отдельных узлов;
При значительном масштабировании полной однородности среды (все узлы кластера обладают одинаковой производительностью), добиться почти невозможно, а современные параллельные СУБД требуют однородной аппаратной среды
Существуют системы аналитических баз данных, которым требуются кластеры с более чем несколькими десятками узлов для достижения требуемой производительности;
Существующие параллельные базы данных не тестировались в более масштабных средах, и при их дальнейшей миграции могут встретиться непредвиденные технические проблемы.
Технология MapReduce может обеспечить требуемые характеристики масштабируемости и отказоустойчивости, поскольку разрабатывалась с расчетом на масштабирование до тысяч узлов, дополнительно, реализация от Google эффективно используется для поддержки внутренних операций компании. Несмотря на то, что изначально технология MapReduce ориентировалась на обработку неструктурированных данных (текстовых), существуют показательные примеры ее использования для обработки огромных объемов структурированной информации.
Похожие статьи
-
Технологии Hadoop - Технологии больших данных: анализ и выбор решения для реализации проекта
Продукт Apache Hadoop является свободной Java-платформой на обычном оборудовании. Проект был рожден посредством обработки материалов Google File System и...
-
Введение - Технологии больших данных: анализ и выбор решения для реализации проекта
В конце 2000х годов были уже сформированы решения класса Business Intelligence, которые являются альтернативой традиционным методам управления базами...
-
Для осуществления первой задачи данной работы был проведен проведение подробный анализ семи наиболее распространенных технологий работы с Большими...
-
Заключение - Технологии больших данных: анализ и выбор решения для реализации проекта
На практике при реализации проектов возникает потребность в инструментах обработки больших данных от особенностей бизнеса, которые после накопления...
-
Обоснование выбора средств разработки проекта Для реализации корпоративной информационной системы "Бюджетное планирование и отчетность" в исследуемой...
-
Современные технологии обработки Больших данных Большой проект бюджетирование автоматизация С приходом новых технологий, инструментов и средств...
-
Полное наименование разрабатываемой системы - корпоративная информационная система "Бюджетное планирование и отчетность" группы компаний, занимающейся...
-
SAP HANA - это гибкий многоцелевой и независимый от источника данных программный комплекс на базе технологии "in-memory", который объединяет компоненты...
-
Помимо концепции будущей системы бюджетирования, в рамках решения задачи разработки проекта "Бюджетное планирование и отчетность" должен быть разработан...
-
Подход NoSQL - Технологии больших данных: анализ и выбор решения для реализации проекта
Понятие NoSQL означает "Не только SQL" или "Не SQL". Термин получил известность, начиная с 2009 год, когда развитие интернет-технологий и социальных...
-
Описание бизнес-процессов бюджетирования в группе компаний нефтегазового сектора Одна из исследовательских задач данной работы состоит в том, чтобы...
-
Решения компании IBM - Технологии больших данных: анализ и выбор решения для реализации проекта
Технологии анализа больших данных являются прекрасным дополнением к средам хранения больших данных. Множество применений включает в себя, например,...
-
Комплекс инструментов Oracle Exalytics Комплексное решение Oracle Exalytics создано для обеспечения высокой производительности аналитических систем и...
-
Язык программирования R - Технологии больших данных: анализ и выбор решения для реализации проекта
Язык программирования R является универсальным и разработан для применения в следующих областях: разведочный анализ данных, классические статистические...
-
Предлагаемая библиотека хранит все данные в отдельных таблицах, таким образом он не обязан использовать ту же СУБД, что и основное приложение. В качестве...
-
Для реализации ИИС контроля расхода энергоресурсов проведем анализ характеристик существующих беспроводных технологий передачи данных. Наиболее...
-
По результатам данного исследования необходимо выявить недостатки и ограничения существующих технологий интеграции. Для проведения исследования...
-
Прогнозируемая оценка проекта после реализации единой шины данных как прослойки между всеми компонентами ИТ-ландшафта компании выполняется по методу...
-
Выбор программного обеспечения для внедрения KPI целиком и полностью упирается в потребности конкретной компании. Благодаря все большей и большей...
-
Для написания АИС использовались следующие языки программирования, программные средства и библиотеки: - Язык программирования PHP 5.4; -...
-
Приложение, которое необходимо разработать, должно производить геометрическую реконструкцию сцены и вычисление цвета вершин модели. Для геометрической...
-
В качестве доступного инструментария были рассмотрены две открытые кроссплатформенные библиотеки для разработки C++ приложений WxWidgets и Boost ,...
-
Оценка эффективности принятых решений - Разработка корпоративной сети на основе технологий xDSL
Три ключевых преимущества технологий xDSL: - использование существующей абонентской линии; - передача по этой одной АЛ всего разнообразного трафика КС -...
-
В среде электронного ресурса ИИС "MD_SLAGMELT" (Рис. 6) для доступа к компоненту "моделирование" необходима учетная запись (пара логин/пароль) (Рис.7)....
-
Перспективной областью применения стандарта Zigbee являются беспроводные системы считывания показаний различных счетчиков. Данный сегмент рынка крайне...
-
Корпоративная интеграционная подсистема на базе IBM WebSphere Business Integration Message Broker [28] отвечает за выстраивание корпоративной...
-
В этом разделе описаны запросы, выполняемых всеми компонентами, а также типы данных, используемые при описании запросов. Стандарт типов данных При...
-
Обзор протокола Multi-Touch технологий передачи данных TUIO [7] - основной кроссплатформенный протокол с открытым исходным кодом Multi-Touch передачи...
-
Необходимо исследовать зависимость влияния различных факторов на параметр, характеризующий производство. В качестве такого параметра было выбрано...
-
Рекомендации по совершенствованию использования информационно-коммуникационных технологий в интернет-среде в сфере здравоохранения для нужд врачей и...
-
Информационная система крупной организации, как правило, представляет собой исторически сложившуюся совокупность отдельно работающих систем, которые...
-
Определение методов реинжиниринга информационных систем Основные задачи, которые стоят перед проектировщиком, занимающимся реинжинирингом информационных...
-
Структура кластера и его параметры Вычислительный кластер -- это совокупность компьютеров, объединенных в рамках некоторой сети для решения одной задачи,...
-
Анализ безопасности - Программное обеспечение для пропускной системы на основе технологии NFC
Для обеспечения безопасности системы было решено использовать протокол HTTPS для связи клиента и сервера. Использование протокола HTTPS для коммуникации...
-
Описание предметной области ООО ИСК "Волгастройинвест" является официальным представителем ряда отечественных и зарубежных фирм, предлагающих на...
-
SPSS Modeler [29] - это программный комплекс, позволяющий строить прогностические модели и применять эту информацию при принятии решений на уровне...
-
В данном разделе была разработана функциональная схема работы программного комплекса, которая в общем виде описывает состав комплекса, характер и виды...
-
Экономить можно то, что учтено. Сегодня нет масштабной федеральной программы совершенствования учета. До сих пор большинство потребителей пользуется...
-
Стек технологий При выборе стека технологий основное внимание уделялось следующим факторам, в порядке убывания значимости: § Кроссплатформенность; §...
-
Распределенные базы данных - Теоретические основы информационных технологий
Системы распределенных вычислений появляются, прежде всего, по той причине, что в крупных автоматизированных информационных системах, построенных на...
Модель распределенных вычислений MapReduce - Технологии больших данных: анализ и выбор решения для реализации проекта