Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Data Mining - технологии обработки больших данных. Учебное пособие
.pdf
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Ордена Трудового Красного Знамени федеральное государственное
бюджетное образовательное учреждение высшего образования
Московский технический университет связи и информатики
В.И.ВОРОНОВ, Л.И.ВОРОНОВА, В.А.УСАЧЕВ
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
