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

  • Большой объем данных, пакетная обработка, результат дол

  • Небольшой объем поступающих данных, обработка резуль

  • 11.3. Среды и инструменты высокопроизводительных вычислений

  • Apache Hadoop

  • Apache Spark

  • Apache Cassandra

  • 12. ИНСТРУМЕНТЫ DATA MINING

  • Интеллектуальный анализ данных учебное пособие. ИАД Лекции Замятин 20. Интеллектуальный анализ данных


    Скачать 2.95 Mb.
    НазваниеИнтеллектуальный анализ данных
    АнкорИнтеллектуальный анализ данных учебное пособие
    Дата30.09.2022
    Размер2.95 Mb.
    Формат файлаpdf
    Имя файлаИАД Лекции Замятин 20.pdf
    ТипУчебное пособие
    #707536
    страница15 из 16
    1   ...   8   9   10   11   12   13   14   15   16
    Большой объем данных, пакетная обработка, отсутствие
    требований к времени выдачи результата. В данной ситуации возникает потребность в распределенном хранении данных, а зна- чит, требуется включить в систему менеджера данных. Также необ- ходимо помнить, что значительный объем данных (например, огромный текст с необходимостью оценки частотности слов в нем) не получится загрузить в оперативную память, следовательно, нужно позаботиться о взаимодействии ОЗУ и ПЗУ (рис. 51).
    Рис. 51. Схема варианта построения вычислительной системы
    Также в распределенной системе полезно иметь менеджер ресур- сов, который собирает информацию о том, насколько загружен каж- дый из узлов; такая информация важна для балансировки загрузки.
    Приведенной на рис. 52 структуре соответствует Hadoop с
    MapReduce версии 1. Применяемая в Hadoop HDFS (распределен- ная файловая система Hadoop, англ. Hadoop Distributed File System)
    Менеджер задач /
    Менеджер ресурсов
    Менеджер данных
    Исполнитель задач
    Данные
    Исполнитель задач
    Данные

    165
    11. Высокопроизводительная обработка данных
    Р
    ис
    52
    Ф
    ре йм во рк
    M
    ap
    Re d
    u ce
    Кл ие нтс ко е пр ил ожен ие
    Гл ав ный уз ел
    По дчине нн ы
    й уз ел
    П
    од чи не нн ы
    й уз ел
    По рци я да нн ы
    х
    00
    По рци я да нн ы
    х
    01
    По рци я да нн ы
    х
    02
    По рци я да нн ы
    х
    03
    По рци я да нн ы
    х
    04
    П
    од чи не нн ы
    й уз ел
    П
    од чи не нн ы
    й уз ел
    П
    од чи не нн ы
    й уз ел
    Вы хо дн ы
    е да нн ы
    е
    0
    Вы хо дн ы
    е да нн ы
    е
    1
    (1
    ) за пу ск
    (1
    ) за пу ск
    (1
    ) за пу ск
    (2
    ) за да ни е
    M
    A
    P
    (2
    ) за да ни е
    Re du ce
    (3
    ) чтени е
    (4
    ) ло ка льн ая з
    апи сь
    (6
    ) запись
    Вх одн ы
    е да нны е
    Э
    тап M
    ap
    Пр ом ежу то чны е ф
    айл ы
    (на л
    ок ал ьны х дис ка х)
    Э
    тап Re du ce
    Вы хо дн ы
    е да нн ы
    е

    Интеллектуальный анализ данных
    166 разделяет файлы на части и следит за тем, где находятся части того или иного запрашиваемого файла. За запись и выдачу файла отве- чает менеджер данных.
    В качестве системы, выполняющей задачи, используется фрейм- ворк MapReduce, который обеспечивает автоматическое распарал- леливание и распределение задач по узлам (см. рис. 52). В рамках данного фреймворка задача разбивается на три стадии, которые мо- гут итеративно повторяться много раз: map (выборка), shuffle (пере- группировка) и reduce (объединение по заданному принципу). По- сле каждой операции идет сохранение данных на диск, что снимает нагрузку с оперативной памяти. Ресурсом в данном случае является число так называемых слотов – map или reduce.
    Важными показателями вычислительной системы являются также масштабируемость и отказоустойчивость. Недостаток приведенной схемы – наличие единой точки выхода из строя – менеджера задач.
    Также менеджер задач здесь выполняет распределение всех посту- пающих задач, что также накладывает ограничения на их число.
    Рис. 53. Вторая версия фреймворка MapReduce
    Менеджер ресурсов
    Менеджер данных
    Менеджер задач
    Данные
    Менеджер ресурсов
    Менеджер задач
    Данные
    Менеджер ресурсов
    Исполнитель задач
    Данные
    Менеджер ресурсов
    Исполнитель задач
    Данные
    Менеджер ресурсов
    Исполнитель задач
    Данные
    Менеджер ресурсов

    11. Высокопроизводительная обработка данных
    167
    Выходом из данной ситуации может быть разделение функций управления ресурсами и управления задачами. Эта идея реализо- вана во второй версии MapReduce, где функции Job Tracker по управлению ресурсами переданы Resource Manager и NodeManager
    (на локальных узлах), а управление задачами – Application Master
    (рис. 53).
    Также в новой версии изменилось понятие ресурса, теперь под ним подразумевается так называемый контейнер, который опреде- ляет ресурс процессора и объем оперативной памяти, выделяемой на задачу.
    Большой объем данных, пакетная обработка, результат дол-
    жен быть получен как можно быстрее. В случае необходимости получения результата как можно быстрее, необходимо пересмот- реть организацию вычислений и, возможно, отказаться от некото- рых архитектурных решений, обеспечивающих большую отказо- устойчивость в пользу решений, обеспечивающих быстродействие.
    Одним из таких решений может быть отказ от сохранения проме- жуточных результатов и перенос вычислений в оперативную па- мять (рис. 54).
    Рис. 54. Схема варианта построения вычислительной системы без сохранения промежуточных результатов
    Менеджер задач
    Менеджер ресурсов
    Исполнитель задач
    Исполнитель задач
    Данные
    Данные

    Интеллектуальный анализ данных
    168
    Тогда схема вычислительного кластера упрощается, как пока- зано на рис. 55. В частности, данной схеме соответствует система
    Spark. В данной системе используется сторонний менеджер ресур- сов, который может быть размещен как на одной машине с мене- джером задач, так и на выделенной.
    В случае структурированных данных также часто применяется база данных на так называемой лямбда-архитектуре. Лямбда-архи- тектура имеет структуру, состоящую из трех уровней:
    пакетный уровень;
    сервисный уровень;
    уровень ускорения.
    Пакетный уровень представляет собой архив сырых данных, чаще всего на базе Hadoop, хотя встречается и в форме OLAP- хранилища (например, Vertica). Этот уровень, как понятно из назва- ния, поддерживает и оперирует пакетной передачей данных. Важно заметить, что старые данные здесь остаются неизменными, проис- ходит лишь добавление новых.
    Сервисный уровень индексирует пакеты и обрабатывает резуль- таты вычислений, происходящих на пакетном уровне. За счет ин- дексации и обработки поступающей информации результаты не- много отстают во времени.
    Уровень ускорения отвечает за обработку данных, поступающих в систему в реальном времени. Представляет собой совокупность складов данных, в которых данные находятся в режиме очереди, в потоковом или в рабочем режиме. На этом уровне компенсируется разница в актуальности данных, а в отдельные представления реального времени добавляется информация с коротким жизнен- ным циклом (чтобы исключить дублирование данных). Эти пред- ставления обрабатывают свои запросы параллельно с сервисным уровнем.
    Как можно заметить, в лямбда-архитектуре наряду с пакетной обработкой используются способы повышения скорости получения информации, но за счет потери их точности из-за неполного набора использующихся данных.

    169
    11. Высокопроизводительная обработка данных
    Р
    ис
    55
    Сх ем а вы чис лите льн ог о кл ас тер а
    YA
    R
    N
    м ен ед же р уз ло в
    За да ча
    Р
    аз дел
    Бл ок
    Р
    або чий у
    зе л
    ND
    F
    S
    уз ел да нн ы
    х
    Кэш
    Ис по лни тел ь
    Др айв ер
    S
    p ark ко нтек ст
    Кл ие нтс кий уз ел
    Г
    ла вны й уз ел
    YA
    R
    N
    м ене дже р ре су рс ов
    HD
    F
    S
    им я уз ла
    Р
    або тник зо опа рк а
    YA
    R
    N
    м ене дже р уз ло в
    За да ча
    Р
    аздел
    Бл ок
    Р
    або чий у
    зе л
    ND
    F
    S
    уз ел да нн ы
    х
    Кэш
    Ис по лни тел ь
    YA
    R
    N
    м ене дже р уз ло в
    За да ча
    Р
    аз дел
    Бл ок
    Р
    або чий у
    зе л
    N
    D
    FS
    уз ел да нн ы
    х
    Кэ ш
    И
    сп ол ни те ль

    Интеллектуальный анализ данных
    170
    Небольшой объем поступающих данных, обработка резуль-
    тата в реальном времени (streaming).Иногда возникает потреб- ность обрабатывать данные оперативно, как только они поступают в систему. В этом случае главным становится скорость прохожде- ния новых данных в системе, а также отказоустойчивость (рис. 56).
    Рис. 56. Схема системы потоковой обработки данных Apache Storm.
    Приведенной схеме соответствует система потоковой обработки данных Apache Storm. В данной системе определяется топология, которая задает последовательность обработки данных. Топология состоит из двух основных элементов – источников данных (spout) и обработчиков (bolt), объединенных определенной схемой. Данные
    Менеджер ресурсов
    Менеджер данных
    Менеджер задач
    Менеджер задач
    Данные
    Менеджер задач
    Исполнитель задач
    Исполнитель задач
    Исполнитель задач
    Исполнитель задач

    11. Высокопроизводительная обработка данных
    171 в системе пересылаются в виде кортежей (tuple). В системе обработ- чики распределяются по исполнителям менеджером задач. Система
    Storm масштабируема.
    Защита от сбоев обеспечивается сохранением состояния в кла- стере Zookeeper, что позволяет восстановить состояние после сбоя.
    Так же как и в других системах обработки, если какой-либо из об- работчиков отказывает, задачи переадресуются на другие обработ- чики.
    11.3. Среды и инструменты
    высокопроизводительных вычислений
    Различные технологии предполагают использование различных аппаратных платформ с точки зрения использования общей или разделенной памяти, гомогенной или гетерогенной среды, а также использования CPU или GPU. Выбор конкретной технологии зави- сит от решаемой задачи и доступной аппаратной платформы. Также стоит отметить, что различные технологии предполагают различ- ную степень изменения исходного кода, что важно учитывать и со- относить со сроками разработки.
    Одной из лидирующих технологий, относящихся к классу Big
    Data, является открытая платформа Hadoop, позволяющая обраба- тывать огромные объемы данных в распределенной среде и обеспе- чивающая, таким образом, существенное снижение стоимости та- кого решения.
    Apache Hadoop состоит из двух ключевых компонентов: распре- деленная файловая система Hadoop (Hadoop Distributed File System,
    HDFS), которая отвечает за хранение данных, и программный фреймворк MapReduce, выполняющий роль системы распределения и распараллеливания задач по узлам.
    HDFS многократно копирует блоки данных и распределяет эти копии по вычислительным узлам кластера, тем самым обеспечивая высокую надежность и скорость вычислений. Архитектурно HDFS- кластер состоит из NameNоde-сервера и DataNode-серверов, кото- рые хранят непосредственно данные. NameNode-сервер управляет

    Интеллектуальный анализ данных
    172 пространством имен файловой системы и доступом клиентов к дан- ным. Чтобы разгрузить NameNode-сервер, передача данных осу- ществляется только между клиентом и DataNode-сервером.
    MapReduce – это фреймворк и модель распределенных вычис- лений, предназначенных для высокоскоростной обработки боль- ших объемов данных на больших параллельных кластерах вычис- лительных узлов. В рамках данного фреймворка задача разбивается на три стадии, которые могут итеративно повторяться много раз: map (выборка данных), shuffle (перегруппировка) и reduce (объеди- нение по заданному принципу).
    Современный стандарт (вторая версия) этого фреймворка обес- печивает автоматическое распараллеливание и распределение за- дач, имеет встроенные механизмы сохранения устойчивости и работоспособности при сбое отдельных элементов, а также обеспе- чивает чистый уровень абстракции для программистов. Преимуще- ство MapReduce заключается в том, что он позволяет распределенно производить операции предварительной обработки и свертки.
    Следующее поколение вычислительной платформы Hadoop –
    Apache YARN (Yet Another Resource Negotiator). YARN был пред- ставлен в Hadoop 2.x. Он предоставляет различные механизмы об- работки данных, такие как обработка графа, интерактивная обра- ботка, обработка потока, а также пакетная обработка для запуска и обработки данных, хранящихся в HDFS. Помимо управления ресур- сами, YARN также используется для планирования работ. YARN расширяет возможности Hadoop для других развивающихся техно- логий, поэтому они могут воспользоваться преимуществами HDFS.
    YARN Apache также рассматривается как операционная система данных для Hadoop 2.x. Архитектура Hadoop 2.x на основе YARN обеспечивает платформу обработки данных общего назначения, ко- торая не ограничивается только MapReduce. Это дает возможность
    Hadoop обрабатывать другую целевую систему обработки данных, отличную от MapReduce. YARN позволяет запускать несколько раз- ных фреймворков на том же оборудовании, где развернут Hadoop.
    Apache YARN Framework состоит из мастер-демона, известного как Resource Manager, вспомогательного демона, называемого

    11. Высокопроизводительная обработка данных
    173 диспетчером узлов (по одному на подчиненный узел) и Application
    Master (по одному на приложение).
    Основная идея YARN состоит в том, чтобы разделить функцио- нальные возможности управления ресурсами и планирования ра- боты (мониторинга) на отдельные демоны, т.е. в том, чтобы иметь глобальный ResourceManager (RM) и ApplicationMaster (AM) для каждого приложения. Приложение представляет собой либо одно задание, либо DAG заданий.
    С появлением YARN подход MapReduce превратился просто в распределенное приложение (хотя по-прежнему полезное и очень популярное) и теперь называется MRv2. MRv2 – это просто реали- зация классического механизма MapReduce (который теперь назы- вается MRv1), выполняющегося поверх YARN.
    Не менее популярным инструментом обработки больших дан- ных сегодня является Apache Spark – фреймворк с открытым исходным кодом для параллельной обработки и анализа сла- боструктурированных данных в оперативной памяти, входящий в экосистему проектов Hadoop. Главные преимущества Spark – про- изводительность, удобный программный интерфейс с неявной па- раллелизацией и отказоустойчивостью. Spark поддерживает четыре языка: Scala, Java, Python и R.
    Фреймворк состоит из пяти компонентов: ядра и четырех биб- лиотек, каждая из которых решает определенную задачу:
    – Spark Core – основа фреймворка. Обеспечивает распределен- ную диспетчеризацию, планирование и базовые функции ввода- вывода.
    – Spark SQL – библиотека структурированной обработки дан- ных. Spark Streaming – простой в использовании инструмент для обработки потоковых данных.
    – MLlib – это распределенная система машинного обучения с высокой скоростью. MLlib включает в себя такие популярные ал- горитмы, как классификация, регрессия, деревья решений, класте- ризация.
    – GraphX – библиотека для масштабируемой обработки графо- вых данных.

    Интеллектуальный анализ данных
    174
    Spark может работать в среде кластеров Hadoop на YARN, под управлением Mesos, в облаке на AWS или других облачных серви- сах и полностью автономно. Spark поддерживает несколько распре- деленных систем хранения, таких как HDFS, OpenStack Swift,
    Cassandra, Amazon S3, Kudu, MapR-FS и NoSQL базы данных.
    Кроме всего прочего, следует упомянуть о примерах систем хра- нения данных. В частности, часто используемой является система
    Apache Cassandra. Это распределенная система управления базами данных, относящаяся к классу NoSQL-систем и рассчитанная на со- здание высокомасштабируемых и надежных хранилищ огромных массивов данных, представленных в виде хэша. Известно, что данная СУБД используется такими компаниями, как Cisco, IBM,
    Cloudkick, Reddit, Digg, Rackspace, Apple и Twitter. Написана на языке Java, реализует распределенную hash-систему, что обеспечи- вает практически линейную масштабируемость при увеличении объема данных. Использует модель хранения данных на базе семей- ства столбцов, чем отличается от систем, которые хранят данные только в связке «ключ – значение», имеет возможность организо- вать хранение хэшей с несколькими уровнями вложенности. Отно- сится к категории отказоустойчивых.
    Помещенные в базу данные автоматически реплицируются на несколько узлов распределенной сети или даже равномерно распре- деляются в нескольких дата-центрах, при сбое узла его функции на лету подхватываются другими узлами; добавление новых узлов в кластер и обновление версии Cassandra также производится на лету, без дополнительного ручного вмешательства и переконфигу- рации других узлов.
    Для упрощения взаимодействия с базой данных поддерживается язык формирования структурированных запросов CQL (Cassandra
    Query Language), который в какой-то степени сходен с SQL, но су- щественно урезан по функциональным возможностям. Драйверы с поддержкой CQL реализованы для языков Python (DBAPI2),
    Java (JDBC), Ruby (gem cassandra-cql), PHP (Thrift, cassandra-pdo,
    Cassandra-PHP-Client-Library) и JavaScript (Node.js). Среди главных преимуществ Cassandra:

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

    Интеллектуальный анализ данных
    176
    12. ИНСТРУМЕНТЫ DATA MINING
    Стремительное развитие информационных технологий, вклю- чая нарастающую интенсивность процессов сбора, хранения и обработки данных, которые рассмотрены подробно в гл. 1, порож- дает новый рынок специализированного программного обеспече- ния для решения задач Data Mining. Причем здесь справедливо выделить два различных класса такого программного обеспе- чения.
    Один класс представляет собой прикладные пользовательские программные системы (как коммерческие, так и свободно распро- страняемые), как правило, реализованные в виде самостоятельных приложений или модулей (англ. standalone application) и предназна- ченные для решения конкретных предметных задач в той или иной области человеческой деятельности. Учитывая достаточно высо- кую сложность и междисциплинарность Data Mining, широкий набор потенциально доступных средств и методов (лишь основные из которых рассмотрены в данном пособии – см. гл. 1–4), такие си- стемы позволяют только в некоторой степени закрыть потребность в квалифицированном анализе данных.
    Учитывая эти обстоятельства, значительную популярность при- обретают программно-аналитические системы, реализованные с ис- пользованием «облачной» архитектуры. В этом случае пользова- телю предоставляется лишь «тонкий» клиент (как правило, web- клиент), а мощная интеллектуальная вычислительная поддержка реализуется сервером поставщика услуг. Очевидно, это требует адаптации такой программной системы для задач пользователя со стороны экспертов. Такое привлечение профессиональной экспер- тизы при постановке задачи и ее адаптации к программно-вычисли- тельной среде, а также потенциально более мощное методическое и вычислительное наполнение «облака» позволяют существенно уве- личить эффективность ее решения. Рассмотрим кратко некоторые примеры таких систем в разд. 12.2.

    12. Инструменты Data Mining
    177
    Другой класс программных систем охватывает специализиро- ванные инструменты, которые при квалифицированном примене- нии позволяют решать задачи Data Mining. Рассмотрим их кратко в разд. 12.1.
    1   ...   8   9   10   11   12   13   14   15   16


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