0
MapReduce и машинное
обучение на Hadoop и
Mahout
Константин Слисенко, JazzTeam
О чём это я?
❏ Apache Hadoop
❏ Обзор, инфраструктура Hadoop
❏ MapReduce с примерами
❏ Как начать
❏ Apache Mahout
❏ Машинно...
Why data is so important and big?
http://americannewsreport.com/big-data-means-big-
changes-for-marketing-and-fundraising-...
Откуда столько данных?
❏ Мы не знаем что захотим анализировать в
будущем
❏ Сохраняем всё
❏ Уже давно ничего не удаляется!
...
Масштабируемость
Big Data
Хранение
Отказоустойчивость Кросплатформенность
❏ одна программа - разные объемы
данных
❏ увелич...
Apache Hadoop
❏ Фреймворк для обработки данных
❏ Масштабируется на множество машин
❏ Написан на Java, открытый исходный ко...
Инфраструктура Hadoop
MapReduce
HDFS
VM1 VM2 VM3 VMn...
Scripting
(Pig)
Query
(Hive)
Machine
learning
(Mahout)
Средства об...
Файловое хранилище HDFS
VM1
1 2
VM2
3 2
VM3
1 3
HDFS
❏ Распределённое
хранение
❏ Локальность
вычислений
❏ Репликация
1 2 3...
Map Reduce
10:31:33 192.168.1.1
10:31:37 192.168.1.2
10:32:04 192.168.1.1
10:32:10 192.168.1.3
10:33:27 192.168.1.2
10:31:...
Пример - статистика посещений сервера
Как запустить?
Cloudera Quick Start VM
http://www.cloudera.
com/content/support/en/downloads.
html
Centos, GUI, Eclipse, s...
Cloudera Quickstart VM
Hortonworks Sandbox
Почему бы не
использовать Unit-
тесты?
Подключаем библиотеку MRUnit
и дебажим
+ не требует инсталляции Hadoop
- нет гарант...
Approval tests MapReduce
http://approvaltests.sourceforge.net/
1. Создаём обёртки для Mapper и Reducer
2. Передаём входные...
Начинаем изучать Hadoop
Hadoop. The definitive
guide
O’REILLY
Getting started with
Apache Hadoop
DZone Refcardz
Немного об...
Hadoop в облаке - играемся серьёзно
Amazon Elastic MapReduce сервис hdinsight
http://aws.amazon.com/elasticmapreduce/ http...
Что такое машинное
обучение?
Подраздел искусственного
интеллекта
Machine learning is the science of
getting computers to a...
Разбивка объектов на группы
по схожести
Каждый объект имеет признаки
(features)
Задана мера сходства (distance
measure)
❏ ...
Разбивка объектов на группы
по схожести
Каждый объект имеет признаки
(features)
Задана мера сходства (distance
measure)
❏ ...
Разбивка объектов на группы
по схожести
Каждый объект имеет признаки
(features)
Задана мера сходства (distance
measure)
❏ ...
I am engineer. I love my pet. My pet is dog.
I, am, engineer, love, my, pet, is, dog.
Кластеризация текста
Исходный текст
...
http://mahout.apache.org
Старт: 2008 год
Последняя версия 0.9
Библиотека алгоритмов
машинного обучения
Работает поверх Had...
1 февраля - месяц назад
Как внести свой вклад
1. Дождаться выхода
нового релиза
2. Собрать, запустить
unit-тесты
3. Сообщи...
Пример: кластеризация посылок
Кластеризация посылок
ParcelClusteringMahoutExample.java Parcel.java
ParcelToVectorUtil.java
Output
stackoverflow.com
❏ 15.7 Гб (архив, Январь 2014)
❏ 6.7 миллионов вопросов
❏ 12 миллионов ответов
❏ 2.8 миллионов пользователей
https://archi...
Кластеризация stackoverflow
XML Text
[0, 1, 0, 1, 1, 0]
[1, 0, 0, 1, 1, 1]
1. Выделение
текста из XML
2. Обработка текста
...
Результат - облако тегов
Динамичность Mahout
Алгоритмы живут пока их кто-то
поддерживает
Если не было поддержки в течение
нескольких последних рели...
Изучаем Mahout
Mahout in action
Sean Oven, Robin Anil, Ted
Dunning, Ellen Friedman
Manning
Кластеризация Stackoverflow от
...
Вопросы?
Спасибо за внимание!
kslisenko@gmail.com
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Константин
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Константин
Upcoming SlideShare
Loading in...5
×

Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Константин

247

Published on

Слисенко Константин, Минск. Компания JazzTeam, Senior Software Engineer

«Scrum для большого проекта. Как это работает на практике». Development секция. Agile отделение.
«MapReduce и машинное обучение на Hadoop и Mahout». Development секция. Для разработчиков. Высокий уровень подготовки.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
247
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Константин"

  1. 1. MapReduce и машинное обучение на Hadoop и Mahout Константин Слисенко, JazzTeam
  2. 2. О чём это я? ❏ Apache Hadoop ❏ Обзор, инфраструктура Hadoop ❏ MapReduce с примерами ❏ Как начать ❏ Apache Mahout ❏ Машинное обучение, обзор Mahout ❏ Что такое кластеризация данных ❏ Пример: кластеризация stackoverflow.com
  3. 3. Why data is so important and big? http://americannewsreport.com/big-data-means-big- changes-for-marketing-and-fundraising-organizations- 8817773 http://www.intel.com/content/www/us/en/communications/internet-minute-infographic.
  4. 4. Откуда столько данных? ❏ Мы не знаем что захотим анализировать в будущем ❏ Сохраняем всё ❏ Уже давно ничего не удаляется! ❏ 80% данных имеют неструктурированный характер ❏ Web-краулинг, GPS, логи, медицинские данные, статистика кликов, продажи, ... ❏ Сам объём данных представляет проблему Большие вычисления Большие данные Использование CPU,GPU, CUDA Использование сети, дисков
  5. 5. Масштабируемость Big Data Хранение Отказоустойчивость Кросплатформенность ❏ одна программа - разные объемы данных ❏ увеличение количества машин - не меняем программу ❏ локальные вычисления ❏ множество копий, репликация ❏ не теряем ничего ❏ автоматическое восстановление после сбоев ❏ не хотим затачивать софт под конкретное железо ❏ не хотим покупать дорогое железо, запуск на обычных компьютерах
  6. 6. Apache Hadoop ❏ Фреймворк для обработки данных ❏ Масштабируется на множество машин ❏ Написан на Java, открытый исходный код ❏ Специальная файловая система ❏ Не требует специального железа ❏ Поддержка java, c#, c++, python, ruby, javascript, ... http://hadoop.apache.org Дистрибутивы ❏ Apache Hadoop ❏ Cloudera ❏ Hortonworks ❏ MapR, IBM, Oracle, Intel...
  7. 7. Инфраструктура Hadoop MapReduce HDFS VM1 VM2 VM3 VMn... Scripting (Pig) Query (Hive) Machine learning (Mahout) Средства обработки данных Запуск распределённых вычислений Распределённая файловая система Сервера или виртуальные машины HBASE OOzie (workflow) Flume (eventpipeline) Управление потоками вычислений Перенос данных Распределённая БД
  8. 8. Файловое хранилище HDFS VM1 1 2 VM2 3 2 VM3 1 3 HDFS ❏ Распределённое хранение ❏ Локальность вычислений ❏ Репликация 1 2 3Файл
  9. 9. Map Reduce 10:31:33 192.168.1.1 10:31:37 192.168.1.2 10:32:04 192.168.1.1 10:32:10 192.168.1.3 10:33:27 192.168.1.2 10:31:33 192.168.1.1 10:31:37 192.168.1.2Map Server log file Reduce 10:33 1 10:32 2 10:31 2 10:31 1 10: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.1 10:32:10 192.168.1.3 10:32 1 10:32 1 10:33 1 10:31 1 10:31 1 10:32 1 10:32 1 Функции Map и Reduce ❏ Описывают только преобразование данных ❏ Тестируются отдельно ❏ Не зависят от объёма данных
  10. 10. Пример - статистика посещений сервера
  11. 11. Как запустить? Cloudera Quick Start VM http://www.cloudera. com/content/support/en/downloads. html Centos, GUI, Eclipse, sample java project with libs Hortonworks Sandbox http://hortonworks. com/products/hortonworks-sandbox/ Web-интерфейс туториалы Pig, Hive
  12. 12. Cloudera Quickstart VM
  13. 13. Hortonworks Sandbox
  14. 14. Почему бы не использовать Unit- тесты? Подключаем библиотеку MRUnit и дебажим + не требует инсталляции Hadoop - нет гарантии работы на реальном кластере Без инсталляции Hadoop
  15. 15. Approval tests MapReduce http://approvaltests.sourceforge.net/ 1. Создаём обёртки для Mapper и Reducer 2. Передаём входные данные 3. Генерируется текстовый файл c результатами Всё визуально понятно Сразу имеем покрытие кода Unit-тестами
  16. 16. Начинаем изучать 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
  17. 17. Hadoop в облаке - играемся серьёзно Amazon Elastic MapReduce сервис hdinsight http://aws.amazon.com/elasticmapreduce/ http://www.windowsazure.com/en-us/services/hdinsight/
  18. 18. Что такое машинное обучение? Подраздел искусственного интеллекта Machine learning is the science of getting computers to act without being explicitly programmed (Coursera) ❏ Системы рекомендаций ❏ Классификация объекта на принадлежность к группе ❏ Нахождение похожих объектов ❏ Нахождение шаблонов поведения ❏ Ключевые темы в коллекции документов ❏ Определение аномалий ❏ Определние спама ❏ Ранжирование поисковой выдачи и многое другое
  19. 19. Разбивка объектов на группы по схожести Каждый объект имеет признаки (features) Задана мера сходства (distance measure) ❏ в примере - геометрическое расстояние Кластеризация
  20. 20. Разбивка объектов на группы по схожести Каждый объект имеет признаки (features) Задана мера сходства (distance measure) ❏ в примере - геометрическое расстояние Кластеризация
  21. 21. Разбивка объектов на группы по схожести Каждый объект имеет признаки (features) Задана мера сходства (distance measure) ❏ в примере - геометрическое расстояние Кластеризация
  22. 22. 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 Нахождение близости
  23. 23. http://mahout.apache.org Старт: 2008 год Последняя версия 0.9 Библиотека алгоритмов машинного обучения Работает поверх Hadoop и отдельно Apache Mahout Системы рекомендаций Кластеризация Классификация И многое другое
  24. 24. 1 февраля - месяц назад Как внести свой вклад 1. Дождаться выхода нового релиза 2. Собрать, запустить unit-тесты 3. Сообщить о проблемах http://mahout.apache.org/developers/how-to- contribute.html Последний релиз 0.9
  25. 25. Пример: кластеризация посылок
  26. 26. Кластеризация посылок ParcelClusteringMahoutExample.java Parcel.java ParcelToVectorUtil.java Output
  27. 27. stackoverflow.com
  28. 28. ❏ 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
  29. 29. Кластеризация stackoverflow XML Text [0, 1, 0, 1, 1, 0] [1, 0, 0, 1, 1, 1] 1. Выделение текста из XML 2. Обработка текста 3. Векторизация 4. Кластеризация 5. Отображение результатов 1. Hadoop MapReduce 2. Mahout + Lucene (фильтр слов, начальная форма, ...) 3. Mahout, алгоритм TF-IDF 4. Mahout, алгоритм К-средних 5. Hadoop MapReduce, HTML, JavaScript, Database
  30. 30. Результат - облако тегов
  31. 31. Динамичность 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.
  32. 32. Изучаем Mahout Mahout in action Sean Oven, Robin Anil, Ted Dunning, Ellen Friedman Manning Кластеризация Stackoverflow от Frank Scholten https://github.com/frankscholten/mahout-clustering- stackoverflow Исходный код примеров Mahout in action: https://github.com/tdunning/MiA Mailing lists dev@mahout.apache.org user@mahout.apache.org Hadoop & MapReduce & Mahout in action H.Saygin Arkan 9/3/2009
  33. 33. Вопросы? Спасибо за внимание! kslisenko@gmail.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×