Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Data Mining - технологии обработки больших данных. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
2 Мб
Скачать
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Ордена Трудового Красного Знамени федеральное государственное
бюджетное образовательное учреждение высшего образования
Московский технический университет связи и информатики
В.И.ВОРОНОВ, Л.И.ВОРОНОВА, В.А.УСАЧЕВ
Data Mining - технологии обработки больших данных
Учебное пособие
для направлений 15.04.04, 27.04.04
Москва 2018
1
УДК 004.62+004.048
Воронов В.И., Воронова Л.И., Усачев В.А. Data Mining - технологии
обработки больших данных: учебное пособие / МТУСИ. – М., 2018. – 49 с.
В подготовке рукописи принимали участие магистранты факультета
информационных технологий МТУСИ гр. М151701, М151601, М271601: Стрельников В.Г., Китаева А.Г., Кулакова О.А.
Учебное пособие «Data Mining - технологии обработки больших
данных» предназначено для студентов, обучающихся в магистратуре
МТУСИ по направлению подготовки 27.04.04 – Управление в технических системах (профиль «Интеллектуальный анализ данных») и 15.04.04 ­Автоматизация технологических процессов и производств (профиль
«Интеллектуальные автоматизированные информационные системы
управления»). Содержание учебного пособия соответствует основным вопросам, рассматриваемым в дисциплинах «Big Data. Методы и средства анализа», «Интеллектуальные базы и хранилища данных».
Цель учебного пособия – ознакомление магистрантов с современными
методами и средствами анализа больших данных, с акцентом на
практическое освоение возможностей такого инструментария как Cloudera,
MapReduce Hadoop.
В качестве программных средств используется среда разработки виртуальной машины «Cloudera Udacity Training». Каждую конкретную задачу моделирования предлагается решить с помощью определенных методов и алгоритмов, затем проанализировать полученные результаты и
сделать выводы.
Ил. 33, список лит. 10 назв.
Издание утверждено Методическим советом университета в качестве
учебного пособия. Протокол № 4 от 17.04.18.
Рецензенты: В.К. Жаров, д.ф.-м.н., профессор (РГГУ)
В.П. Соколов, к.т.н., доцент (МТУСИ)
© Московский технический университет
связи и информатики (МТУСИ), 2018
2
Содержание
Глава 1. Введение в Большие данные ......................................................... 4
Практикум 1.1. Установка виртуальной машины «Udacity»,
знакомство с MapReduce ................................................................ 6
Практикум 1.2. Построение запросов MapReduce к журналу
транзакций веб-сайта .................................................................... 13
Глава 2. Паттерны проектирования MapReduce ...................................... 17
Практикум 2.1. Применение паттернов проектирования
MapReduce ..................................................................................... 18
Практикум 2.2. Интеллектуальный анализ данных с форума
Udacity ............................................................................................ 23
Глава 3. Cloudera QuickStart VM ............................................................... 29
Практикум 3.1. Взаимодействия и реляционные данные запроса ………………………………………………………….. 30
Практикум 3.2. Корреляция структурированных данных с
неструктурированными данными ............................................... 33
Практикум 3.3. Аналитика уровня корреляционных
зависимостей с использованием Spark ....................................... 35
Практикум 3.4. Интерактивное изучение журнала событий .... 36
Глава 4. Визуализация данных .................................................................. 39
Практикум 4.1. Создание приборной панели ............................. 40
Практикум 4.2. Использование средств визуализации ............. 42
Приложение А ............................................................................................. 43
Приложение Б .............................................................................................. 44
Список литературы ..................................................................................... 46
3
Глава 1. Введение в Большие данные
Мы живем в новой эпохе – эпохе больших данных. Изменения, которые
несут новые информационные технологии, затрагивают жизнь каждого человека. Приметы информационного общества нетрудно заметить повсюду:
в каждом кармане найдется мобильный телефон, на каждом столе – компьютер, а в рабочих кабинетах по всему миру – большие ИТ системы.
Большие данные (англ. big data) — серия подходов, инструментов и
методов обработки структурированных и неструктурированных данных огромных объёмов и значительного многообразия для получения воспринимаемых человеком результатов, эффективных в условиях непрерывного прироста, распределения по многочисленным узлам
вычислительной сети, сформировавшихся в конце 2000-х годов,
альтернативных традиционным системам управления базами данных и
решениям класса Business Intelligence.
Теперь эта концепция распределенной обработки информации
проникает во все сферы человеческой деятельности. Big Data - это большой
объем, высокая скорость и/или большое разнообразие информационных ресурсов, которые требуют новых форм обработки для улучшения принятия
решений, обнаружения и оптимизации процессов. Определяют три V, характеризующие Big Data – Volume (объем данных), Velocity (скорость обработки) и Variety (разнообразие данных).
Большие данные диктуют три основных шага к новому образу мышления. Первый – это способность анализировать все данные, а не довольствоваться их частью или статистическими выборками. Второй
готовность иметь дело с неупорядоченными данными в ущерб точности.
Третий – изменение образа мыслей: доверять корреляциям, а не гнаться за
труднодостижимой причинностью. Этот подход описывается как датификация (data-ization) – преобразование в формат данных всего, что есть на планете путем количественного анализа, что открывает новые
возможности для прогнозного анализа.
Одним из самых известных проектов в области распределенных
вычислений является Hadoop — разрабатываемый фондом Apache Software Foundation (ASF) свободно распространяемый набор из утилит, библиотек и
фреймворк для разработки и выполнения программ распределенных
вычислений.
В состав проекта Hadoop входят следующие подпроекты:
Common — набор компонентов и интерфейсов для распределенных
файловых систем и общего ввода-вывода;
Map Reduce — модель распределеных вычислений, предназначенная для
параллельных вычислений над очень большими (до нескольких петабайт)
объемами данных;
HDFS — распределенная файловая система, работающая на больших
кластерах типовых машин.
4
Перечислим еще несколько самостоятельных продуктов ASF, тесно связанных с Hadoop:
Avro — система сериализации для выполненных межъязыковых вызовов
RPC и долгосрочного хранения данных;
Pig — язык управления потоком данных и исполнительная среда для
анализа больших объемов данных;
Hive — распределенное хранилище данных; оно управляет данными,
хранимыми в HDFS, и предоставляет язык запросов на базе SQL для работы с
этими данными;
HBase — нереляционная распределенная база данных;
ZooKeeper — распределенный координационный сервис; предоставляет
примитивы для построения распределенных приложений;
Sqoop — инструмент для пересылки данных между структурированными
хранилищами и HDFS;
Oozie — сервис для записи и планировки заданий Hadoop.
Cloudera Hadoop представляет собой полностью открытый дистрибутив,
который распространяется как в бесплатном, так и в платном варианте,
известном под названием Cloudera Enterprise, включает следующие основные компоненты: Cloudera Hadoop (CDH) — собственно дистрибутив Hadoop; Cloudera Manager — инструмент для развертывания, мониторинга и управления кластером Hadoop.
Hadoop следует использовать, если:
• вычисления компонуемы, другими словами, вы должны иметь возможность запустить вычисления на подмножестве данных, а затем объединить результаты;
• планируется обрабатывать большой объем неструктурированных данных — больше, чем можно уместить на одной машине (> нескольких терабайт данных).
Hadoop не следует использовать:
• для некомпонуемых задач — например, для задач рекуррентных;
• если весь объем данных умещается на одной машине, это существенно
сэкономит время и ресурсы.
В практикуме в качестве программных средств используются две среды
разработок: виртуальная машина «Cloudera Udacity Training», а также Cloudera QuickStart VM. Каждую конкретную аналитическую задачу
предлагается решить с помощью встроенных средств, определенных методов
и алгоритмов, затем проанализировать полученные результаты и сделать выводы.
5
Практикум 1.1. Установка виртуальной машины «Udacity»,
знакомство с MapReduce
Цель: получить практические навыки по разработке запросов в рамках
MapReduce.
Задачи:
1. Установить виртуальную машину
«Cloudera Udacity Training VM 4.1.1.c».
2. Посчитать общую сумму продаж в категориях «игрушки» и
«бытовая электроника» («Toys», «Consumer Electronics»).
3. Найти максимальную стоимость покупки по каждому магазину.
4. Найти общую сумму покупок и общее число покупок.
5. Придумать и реализовать три новых интегрированных запроса,
содержащих, как минимум, три условия с логическими связками.
Ход выполнения
Задача 1. Установить требуемое ПО для работы с большими данными.
Изначально вам потребуется установить ПО для работы с виртуальными машинами. Для ОС Windows и ОС Ubuntu для – VMWare Player. Важно, что действующая ОС на компьютере должна иметь разрядность 64 бита.
1. Зайдите на официальный сайт разработчика
https://my.vmware.com/en/web/vmware/free#desktop_end_user_computing/vmwa re_workstation_player/14_0. Выберите версию программы, в зависимости от
той операционной системы, которая стоит на компьютере (рис 1.1).
Рисунок 1.1 - Выбор версии VMWare
Запустите скачанный файл в Windows и приступите к установке программного продукта (рис. 1.2):
6
Рисунок 1.2 – Процесс установки VMWare
7
Сделайте перезагрузку и запустите VMWare player. Появится окно с выбором типа использования и вводом ключа лицензии. Выберите первый
пункт «Использование не в коммерческих целях» (рис. 1.3).
Рисунок 1.3 – Ввод ключа лицензии
2. Скачайте виртуальную машину Cloudera Udacity, расположенную
по адресу http://content.udacity-data.com/courses/ud617/Cloudera-Udacity-
Training-VM-4.1.1.c.zip. В разархивированном виде образ машины занимает
11,1 ГБ. Минимальные системные требования: оперативная память 256 МБ,
свободное пространство на жёстком диске 5 ГБ, 1 процессор.
Добавьте образ виртуальной машины в программу: нажмите на кнопку «Open a Virtual Machine» (рис. 1.4).
Рисунок 1.4 – Добавление образа виртуальной машины
В той директории, куда вы разархивировали образ виртуальной
машины, выберите файл «Cloudera-Training-VM-4.1.1.c.vmx» (рис. 1.5).
8
Рисунок 1.5 – Добавление образа виртуальной машины
В списке виртуальных машин вы увидите Cloudera Udacity. По умолчанию ей выделяется 512 МБ оперативной памяти (RAM). Если
компьютер позволяет, то в настройках виртуальной машины увеличьте оперативную память до 1 ГБ. Запустите виртуальную машину при помощи кнопки «Play virtual machine». Сразу после запуска отрывается терминал (рис. 1.6).
Рисунок 1.6 – Терминал виртуальной машины
9
3. В виртуальной машине имеется подготовленный набор данных. В
2012-01-01 09:00 San Jose Men's Clothing 214.05 Amex 2012-01-01 09:00 Fort Worth Women's Clothing 153.57 Visa 2012-01-01 09:00 San Diego Music 66.08 Cash
$ cd udacity_training/data/ $ head -50 purchases.txt > testfile
$ hadoop fs –put testfile
$ gedit ../code/mapper.py $ gedit ../code/reducer.py
#!/usr/bin/python import sys for line in sys.stdin: data = line.strip().split("\t") if len(data) == 6: date, time, store, item, cost, payment = data if item.lower() in ['toys', 'consumer electronics']: print "{0}\t{1}".format(item, 1)
#!/usr/bin/env python import sys sales_total = 0 old_key = None for line in sys.stdin: data = line.strip().split("\t") if len(data) != 2: continue this_key, this_sale = data if old_key and old_key != this_key: print ("#{0}\t{1}".format(old_key,sales_total)) sales_total = 0 old_key = this_key sales_total += float(this_sale) if old_key != None: print("#{0}\t{1}".format(old_key,sales_total))
файле /home/training/udacity_training/data/purchases.txt содержится информация о совершённых покупках в формате «Дата-Время-Город­Категория товара-Стоимость-Платёжная система». Пример данных:
Данный файл содержит больше 4 млн записей, поэтому при отладке
программы используйте часть строк, чтобы убедиться в корректности работы. Возьмите первые 50 строк из исходного файла и скопируйте их в
новый файл – testfile:
testfile будет содержать часть исходных данных. Более подробная
информация о командах находится в Приложении А. Потом мы должны
поместить файл с данными в HDFS:
Задача 2. Найти общую сумму в категориях «Игрушки» и «Бытовая электроника» («Toys», «Consumer Electronics»).
Для решения задачи отредактируйте исходные файлы mapper.py и reducer.py, расположенные в папке code, командами в терминале:
Программный код в mapper.py и reducer.py написан на языке Python. Более подробная информация о языке Python, а также основных командах
Python, используемых в практикумах, приведена в Приложении Б.
Реализация Mapper:
Реализация Reducer:
10