Вычисления с интенсивным использованием данных

редактировать

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

Содержание
  • 1 Введение
  • 2 Параллелизм данных
  • 3 Подход
  • 4 Характеристики
  • 5 Системные архитектуры
    • 5.1 MapReduce
    • 5.2 Hadoop
    • 5.3 HPCC
  • 6 См. также
  • 7 Ссылки
Введение

Быстрый рост Интернета и World Wide Web привел к появлению огромного количества информации, доступной в Интернете. Кроме того, коммерческие и государственные организации создают большие объемы как структурированной, так и неструктурированной информации, которую необходимо обрабатывать, анализировать и связывать. Винтон Серф охарактеризовал это как «информационную лавину» и заявил, что «мы должны использовать энергию Интернета, прежде чем информация, которую он передает, похоронит нас». В официальном документе IDC, спонсируемом EMC Corporation, объем информации, хранящейся в настоящее время в цифровой форме в 2007 году, оценивается в 281 экзабайт, а общий совокупный темп роста - в 57% при росте информации в организациях. даже быстрее. В исследовании 2003 года, посвященном так называемому информационному взрыву, было подсчитано, что 95% всей текущей информации существует в неструктурированной форме с повышенными требованиями к обработке данных по сравнению со структурированной информацией. Хранение, управление, доступ и обработка этого огромного количества данных представляет собой фундаментальную потребность и огромную проблему для удовлетворения потребностей в поиске, анализе, добыче и визуализации этих данных как информации. Для удовлетворения этой потребности предназначены вычисления с интенсивным использованием данных.

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

Интенсивное использование данных используется для описания приложений, которые связаны с вводом-выводом или которым необходимо обрабатывать большие объемы данных. Такие приложения посвящают большую часть времени обработки вводу-выводу, перемещению и обработке данных. Параллельная обработка приложений, интенсивно использующих данные, как правило, включает разбиение или подразделение данных на несколько сегментов, которые могут обрабатываться независимо с использованием одной и той же исполняемой прикладной программы параллельно на соответствующей вычислительной платформе, а затем повторная сборка результатов для получения завершенного выходные данные. Чем выше совокупное распределение данных, тем больше преимуществ дает параллельная обработка данных. Требования к интенсивной обработке данных обычно линейно масштабируются в соответствии с размером данных и легко поддаются прямому распараллеливанию. Основными проблемами для вычислений с интенсивным использованием данных являются управление и обработка экспоненциально растущих объемов данных, значительное сокращение связанных циклов анализа данных для поддержки практических и своевременных приложений и разработка новых алгоритмов, которые могут масштабироваться для поиска и обработки огромных объемов данных. Исследователи придумали термин BORPS для «миллиардов записей в секунду» для измерения скорости обработки записей аналогично тому, как термин MIPS применяется для описания скорости обработки компьютеров.

Параллелизм данных.

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

Национальный научный фонд США (NSF) финансировал исследовательскую программу с 2009 по 2010 год. Основными направлениями были:

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

Тихоокеанский Северо-Западный регион nal Labs определила вычисления с интенсивным использованием данных как «сбор, управление, анализ и понимание данных с объемами и скоростью, которые расширяют границы современных технологий».

Подход

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

Характеристики

Несколько общих характеристик интенсивных данных. вычислительные системы отличают их от других форм вычислений:

  1. Принцип сбора данных и программ или алгоритмов используется для выполнения вычислений. Для достижения высокой производительности в вычислениях с интенсивным использованием данных важно минимизировать перемещение данных. Эта характеристика позволяет алгоритмам обработки выполняться на узлах, где находятся данные, сокращая системные издержки и повышая производительность. Новые технологии, такие как InfiniBand, позволяют хранить данные в отдельном репозитории и обеспечивать производительность, сопоставимую с совместно размещенными данными.
  2. Используемая модель программирования. Вычислительные системы с интенсивным использованием данных используют машинно-независимый подход, в котором приложения выражаются в терминах высокоуровневых операций с данными, а система времени выполнения прозрачно контролирует планирование, выполнение, балансировку нагрузки, обмен данными и перемещение программ и данных через распределенный вычислительный кластер. Абстракция программирования и языковые инструменты позволяют выражать обработку в терминах потоков данных и преобразований с использованием новых потоков данных языков программирования и общих библиотек общих алгоритмов обработки данных, таких как сортировка.
  3. В центре внимания по надежности и доступности. Крупномасштабные системы с сотнями или тысячами узлов обработки по своей природе более восприимчивы к аппаратным сбоям, ошибкам связи и программным ошибкам. Вычислительные системы с интенсивным использованием данных разработаны с учетом отказоустойчивости. Обычно это включает в себя избыточные копии всех файлов данных на диске, хранение промежуточных результатов обработки на диске, автоматическое обнаружение узлов или сбоев обработки и выборочный пересчет результатов.
  4. Внутренняя масштабируемость базового оборудования и архитектура программного обеспечения. Вычислительные системы с интенсивным использованием данных обычно можно масштабировать линейно для размещения практически любого объема данных или для удовлетворения критических по времени требований к производительности путем простого добавления дополнительных узлов обработки. Количество узлов и задач обработки, назначенных для конкретного приложения, может быть переменным или фиксированным в зависимости от оборудования, программного обеспечения, связи и архитектуры распределенной файловой системы.
Архитектура системы

A были реализованы различные системные архитектуры для вычислений с интенсивным использованием данных и крупномасштабных приложений анализа данных, включая параллельные и распределенные системы управления реляционными базами данных, которые были доступны для работы на кластерах без общего доступа узлы обработки более двух десятилетий. Однако наибольший рост данных происходит за счет данных в неструктурированной форме, и потребовались новые парадигмы обработки с более гибкими моделями данных. Появилось несколько решений, включая архитектуру MapReduce, впервые разработанную Google и теперь доступную в реализации с открытым исходным кодом под названием Hadoop, используемую Yahoo, Facebook и другие. LexisNexis Risk Solutions также разработала и внедрила масштабируемую платформу для интенсивных вычислений, которая используется LexisNexis.

MapReduce

Архитектура и программирование MapReduce Модель, впервые разработанная Google, является примером современной системной архитектуры, предназначенной для вычислений с интенсивным использованием данных. Архитектура MapReduce позволяет программистам использовать стиль функционального программирования для создания функции карты, которая обрабатывает пару «ключ-значение», связанную с входными данными, для создания набора промежуточных пар «ключ-значение», и функция сокращения, которая объединяет все промежуточные значения, связанные с одним и тем же промежуточным ключом. Поскольку система автоматически заботится о таких деталях, как разделение входных данных, планирование и выполнение задач в кластере обработки, а также управление связью между узлами, программисты, не имеющие опыта в параллельном программировании, могут легко использовать большую распределенную среду обработки.

Модель программирования для архитектуры MapReduce - это простая абстракция, в которой вычисление берет набор входных пар ключ-значение, связанных с входными данными, и производит набор выходных пар ключ-значение. На этапе сопоставления входные данные разделяются на входные части и назначаются задачам сопоставления, связанным с узлами обработки в кластере. Задача сопоставления обычно выполняется на том же узле, который содержит назначенный раздел данных в кластере. Эти задачи карты выполняют указанные пользователем вычисления для каждой входной пары ключ-значение из раздела входных данных, назначенного задаче, и генерируют набор промежуточных результатов для каждого ключа. Затем на этапе перемешивания и сортировки промежуточные данные, сгенерированные каждой задачей карты, сортируются с промежуточными данными из других узлов, разделяются на регионы, которые будут обрабатываться задачами сокращения, и распределяются по мере необходимости узлам, на которых выполняется сокращение. задачи будут выполняться. Задачи Reduce выполняют дополнительные заданные пользователем операции с промежуточными данными, возможно, объединяя значения, связанные с ключом, с меньшим набором значений для получения выходных данных. Для более сложных процедур обработки данных несколько вызовов MapReduce могут быть последовательно связаны друг с другом.

Hadoop

Apache Hadoop - это проект программного обеспечения с открытым исходным кодом, спонсируемый Apache Software Foundation, который реализует архитектуру MapReduce. Теперь Hadoop включает несколько подпроектов в дополнение к базовому ядру, MapReduce и распределенной файловой системе HDFS. Эти дополнительные подпроекты предоставляют расширенные возможности обработки приложений для базовой реализации Hadoop и в настоящее время включают Avro, Pig, HBase, ZooKeeper, Hive и Chukwa. Архитектура Hadoop MapReduce функционально аналогична реализации Google, за исключением того, что базовым языком программирования для Hadoop является Java вместо C ++. Реализация предназначена для работы на кластерах массовых процессоров.

Hadoop реализует среду планирования и выполнения распределенной обработки данных и среду для заданий MapReduce. Hadoop включает распределенную файловую систему под названием HDFS, которая аналогична GFS в реализации Google MapReduce. Среда выполнения Hadoop поддерживает дополнительные возможности распределенной обработки данных, которые предназначены для работы с использованием архитектуры Hadoop MapReduce. К ним относятся HBase, распределенная база данных, ориентированная на столбцы, которая предоставляет возможности произвольного доступа для чтения / записи; Hive, который представляет собой систему хранилища данных , построенную на основе Hadoop, которая предоставляет возможности запросов, подобных SQL, для суммирования данных, специальных запросов и анализа больших наборов данных; и Pig - высокоуровневый язык программирования потоков данных и среда выполнения для вычислений с интенсивным использованием данных.

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

HPCC

HPCC (High-Performance Вычислительный кластер) был разработан и внедрен LexisNexis Risk Solutions. Разработка этой вычислительной платформы началась в 1999 году, а приложения были запущены в производство к концу 2000 года. Подход HPCC также использует стандартные аппаратные кластеры, работающие под управлением операционной системы Linux. Специальное системное программное обеспечение и компоненты промежуточного программного обеспечения были разработаны и размещены на базовой операционной системе Linux для обеспечения среды выполнения и поддержки распределенной файловой системы, необходимых для вычислений с интенсивным использованием данных. LexisNexis также реализовал новый язык высокого уровня для вычислений с интенсивным использованием данных.

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

Для решения задач, связанных как с пакетными, так и с интерактивными аспектами вычислительных приложений с интенсивным использованием данных, HPCC включает две отдельные кластерные среды, каждую из которых можно независимо оптимизировать для целей параллельной обработки данных. Платформа Thor - это кластер, предназначенный для обработки больших объемов необработанных данных для таких приложений, как очистка данных и гигиена, извлечение, преобразование, загрузка (ETL), а также разрешение сущностей, крупномасштабный специальный анализ данных и создание данных с ключами и индексов для поддержки высокопроизводительных структурированных запросов и приложений хранилищ данных. Система Thor похожа по своей конфигурации оборудования, функциям, среде выполнения, файловой системе и возможностям на платформу Hadoop MapReduce, но обеспечивает более высокую производительность в эквивалентных конфигурациях. Платформа Roxie предоставляет онлайновую высокопроизводительную структурированную систему запросов и анализа или хранилище данных, обеспечивающую выполнение требований обработки параллельного доступа к данным для онлайновых приложений через интерфейсы веб-сервисов, поддерживающих тысячи одновременных запросов и пользователей со временем ответа менее секунды. Система Roxie по своим функциям и возможностям аналогична Hadoop с добавленными возможностями HBase и Hive, но обеспечивает оптимизированную среду выполнения и файловую систему для высокопроизводительной работы в сети. обработка. Системы Thor и Roxie используют один и тот же язык программирования ECL для реализации приложений, что увеличивает продуктивность программистов.

См. Также
Ссылки
Последняя правка сделана 2021-05-17 14:07:28
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте