35
MapReduce и машинное обучение на Hadoop и Mahout Константин Слисенко, JazzTeam

Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

MapReduce и машинное обучение на Hadoop и

MahoutКонстантин Слисенко, JazzTeam

Page 2: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

О чём это я?❏ Apache Hadoop

❏ Обзор, инфраструктура Hadoop

❏ MapReduce с примерами

❏ Как начать

❏ Apache Mahout

❏ Машинное обучение, обзор Mahout

❏ Что такое кластеризация данных

❏ Пример: кластеризация stackoverflow.com

Page 4: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Откуда столько данных?❏ Мы не знаем что захотим анализировать в

будущем❏ Сохраняем всё❏ Уже давно ничего не удаляется!

❏ 80% данных имеют неструктурированный характер❏ Web-краулинг, GPS, логи, медицинские

данные, статистика кликов, продажи, ...❏ Сам объём данных представляет проблему

Большие вычисления Большие данные

Использование CPU,GPU, CUDA Использование сети, дисков

Page 5: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Масштабируемость

Big Data

Хранение

Отказоустойчивость Кросплатформенность

❏ одна программа - разные объемы данных

❏ увеличение количества машин - не меняем программу

❏ локальные вычисления❏ множество копий, репликация

❏ не теряем ничего❏ автоматическое восстановление

после сбоев

❏ не хотим затачивать софт под конкретное железо

❏ не хотим покупать дорогое железо, запуск на обычных компьютерах

Page 6: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Apache Hadoop

❏ Фреймворк для обработки данных❏ Масштабируется на множество машин❏ Написан на Java, открытый исходный код❏ Специальная файловая система❏ Не требует специального железа❏ Поддержка java, c#, c++, python, ruby,

javascript, ...

http://hadoop.apache.org

Дистрибутивы❏ Apache Hadoop❏ Cloudera❏ Hortonworks❏ MapR, IBM, Oracle, Intel...

Page 7: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference
Page 8: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Инфраструктура Hadoop

MapReduce

HDFS

VM1 VM2 VM3 VMn...

Scripting (Pig)

Query (Hive)

Machine learning (Mahout)

Средства обработки данных

Запуск распределённых вычислений

Распределённая файловая система

Сервера или виртуальные машины

HBASE

OO

zie

(wo

rkfl

ow

)Fl

ume

(eve

nt p

ipel

ine)

Управление потоками вычислений

Перенос данных

Распределённая БД

Page 9: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Файловое хранилище HDFS

VM1

1 2

VM2

3 2

VM3

1 3

HDFS

❏ Распределённое хранение

❏ Локальность вычислений

❏ Репликация

1 2 3Файл

Page 10: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Map Reduce10:31:33 192.168.1.110:31:37 192.168.1.210:32:04 192.168.1.110:32:10 192.168.1.310:33:27 192.168.1.2

10:31:33 192.168.1.110:31:37 192.168.1.2Map

Server log file

Reduce

10:33 1

10:32 2

10:31 2

10:31 110:31 1

hh:mm:ss ip hh:mm 1

hh:mm 1

10:33:27 192.168.1.2

hh:mm sum(i)

10:33 1

10:32:04 192.168.1.110:32:10 192.168.1.3

10:32 110:32 1

10:33 1

10:31 110:31 1

10:32 110:32 1

Функции Map и Reduce❏ Описывают только

преобразование данных❏ Тестируются отдельно❏ Не зависят от объёма данных

Page 11: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Пример - статистика посещений сервера

Page 12: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Как запустить?

Cloudera Quick Start VMhttp://www.cloudera.com/content/support/en/downloads.html

Centos, GUI, Eclipse, sample java project with libs

Hortonworks Sandboxhttp://hortonworks.com/products/hortonworks-sandbox/

Web-интерфейстуториалы Pig, Hive

Page 13: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Cloudera Quickstart VM

Page 14: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Hortonworks Sandbox

Page 15: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Почему бы не использовать Unit-тесты?

Подключаем библиотеку MRUnit и дебажим

+ не требует инсталляции Hadoop- нет гарантии работы на реальном кластере

Без инсталляции Hadoop

Page 16: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Approval tests MapReduce

http://approvaltests.sourceforge.net/

1. Создаём обёртки для Mapper и Reducer2. Передаём входные данные3. Генерируется текстовый файл c результатами

Всё визуально понятноСразу имеем покрытие кода Unit-тестами

Page 17: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Начинаем изучать Hadoop

Hadoop. The definitive guide

O’REILLY

Getting started with Apache Hadoop

DZone Refcardz

Немного обо всём наHortonworks Sandbox VM

Pig, Hive, HDFS, Hadoop.

http://hortonworks.com/tutorials/http://hortonworks.com/products/hortonworks-sandbox/

Примеры кода на Cloudera Quickstart VM

Page 18: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Hadoop в облаке - играемся серьёзно

Amazon Elastic MapReduce сервис hdinsight

http://aws.amazon.com/elasticmapreduce/ http://www.windowsazure.com/en-us/services/hdinsight/

Page 19: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Что такое машинное обучение?

Подраздел искусственного интеллекта

Machine learning is the science of getting computers to act without being explicitly programmed (Coursera)

❏ Системы рекомендаций❏ Классификация объекта на

принадлежность к группе❏ Нахождение похожих объектов❏ Нахождение шаблонов поведения❏ Ключевые темы в коллекции

документов❏ Определение аномалий❏ Определние спама❏ Ранжирование поисковой выдачии многое другое

Page 20: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference
Page 21: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Разбивка объектов на группы по схожести

Каждый объект имеет признаки (features)

Задана мера сходства (distance measure)❏ в примере - геометрическое

расстояние

Кластеризация

Page 22: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Разбивка объектов на группы по схожести

Каждый объект имеет признаки (features)

Задана мера сходства (distance measure)❏ в примере - геометрическое

расстояние

Кластеризация

Page 23: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Разбивка объектов на группы по схожести

Каждый объект имеет признаки (features)

Задана мера сходства (distance measure)❏ в примере - геометрическое

расстояние

Кластеризация

Page 24: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

I am engineer. I love my pet. My pet is dog.I, am, engineer, love, my, pet, is, dog.

Кластеризация текста

Исходный текстВыделение слов, фильтрация

Векторизация

engineer love pet dog

1 I am engineer 1 0 0 0

2 I love my pet 0 1 1 0

3 My pet is dog 0 0 1 1

p q d(p, q)

1 2 3

2 3 2

1 3 3

Нахождение близости

Page 25: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

http://mahout.apache.org

Старт: 2008 годПоследняя версия 0.9

Библиотека алгоритмов машинного обучения

Работает поверх Hadoop и отдельно

Apache MahoutСистемы

рекомендацийКластеризация

Классификация

И многое другое

Page 26: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

1 февраля - месяц назад

Как внести свой вклад1. Дождаться выхода

нового релиза2. Собрать, запустить

unit-тесты3. Сообщить о проблемах

http://mahout.apache.org/developers/how-to-contribute.html

Последний релиз 0.9

Page 27: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Пример: кластеризация посылок

Page 28: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Кластеризация посылок

ParcelClusteringMahoutExample.java Parcel.java

ParcelToVectorUtil.java

Output

Page 29: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

stackoverflow.com

Page 30: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

❏ 15.7 Гб (архив, Январь 2014)

❏ 6.7 миллионов вопросов

❏ 12 миллионов ответов

❏ 2.8 миллионов пользователей

https://archive.org/details/stackexchange

Открытые данные stackoverflow

<posts> <row Id="0" Title="Title1"

Body="Question 1 text" ... /> <row Id="1" Title="Title1"

Body="Question 2 text" ... /></posts>

Исходные данные в формате XML

PostTypeId, AcceptedAnswerId, CreationDate, Score, ViewCount, OwnerUserId, LastEditorUserId, LastEditorDisplayName, LastEditDate, LastActivityDate, Tags, AnswerCount, CommentCount, FavoriteCount

Page 31: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Кластеризация stackoverflow

XML Text [0, 1, 0, 1, 1, 0][1, 0, 0, 1, 1, 1]

1. Выделение текста из XML

2. Обработка текста

3. Векторизация

4. Кластеризация 5. Отображение результатов

1. Hadoop MapReduce2. Mahout + Lucene (фильтр слов, начальная форма, ...)3. Mahout, алгоритм TF-IDF4. Mahout, алгоритм К-средних5. Hadoop MapReduce, HTML, JavaScript, Database

Page 32: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Результат - облако тегов

Page 33: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Динамичность Mahout

Алгоритмы живут пока их кто-то поддерживает

Если не было поддержки в течение нескольких последних релизов - алгоритм безжалостно выпиливается

One of the goals of Mahout these days is to streamline the project by supporting a only few good algorithms and slowly deprecate and remove algorithms that are not used that much or are difficult to use.

Page 34: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Изучаем Mahout

Mahout in action

Sean Oven, Robin Anil, Ted Dunning, Ellen Friedman

Manning

Кластеризация Stackoverflow от Frank Scholtenhttps://github.com/frankscholten/mahout-clustering-stackoverflow

Исходный код примеров Mahout in action:https://github.com/tdunning/MiA

Mailing [email protected]@mahout.apache.org

Hadoop & MapReduce & Mahout in action

H.Saygin Arkan

9/3/2009

Page 35: Map reduce и машинное обучение на hadoop и mahout - Solit 2014 dev conference

Вопросы?

Спасибо за внимание!

[email protected]