SlideShare une entreprise Scribd logo
1  sur  42
Использование Hadoop и Mahout
в машинном обучении
Созыкин Андрей Владимирович
к.т.н.
зав.кафедрой высокопроизводительных компьютерных технологий
2
Hadoop и Mahout Созыкин А.В.
Big Data
• Big Data – задачи обработки больших объемов данных:
• Терабайты и петабайты
• Высокая скорость обработки – невозможно
сделать традиционными подходами
• Оценки аналитиков Gartner и IDC:
• Big Data входит в ТОП 10 наиболее важных
тенденций развития информационных технологий
• Рынок Big Data один из самых быстрорастущих
• MapReduce – одна из наиболее популярных моделей
обработки данных в Big Data
3
Hadoop и Mahout Созыкин А.В.
План
• Основы MapReduce и Apache Hadoop
• Экосистема Hadoop
• Машинное обучение в Apache Mahout
4
Hadoop и Mahout Созыкин А.В.
История Hadoop и MapReduce
• Технологию MapReduce придумали в Google для
системы поиска в Интернет:
• Цель – хранить и обрабатывать большие объемы данных на
обычных компьютерах, объединенных сетью
• Goggle не распространяет свою реализацию MapReduce
• Jeffrey Dean, Sanjay Ghemawat. MapReduce: Simplified Data
Processing on Large Clusters
• Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung. The
Google File System
• Apache Hadoop – открытая реализация MapReduce:
• Разработан на основе идей Google
• Написан на Java
• http://hadoop.apache.org/
5
Hadoop и Mahout Созыкин А.В.
Кто использует Hadoop
• Кто использует Hadoop:
• Самый большой кластер Hadoop в Yahoo!:
• 4500 серверов
• Используется для поисковой системы и подбора рекламных
объявлений
6
Hadoop и Mahout Созыкин А.В.
Основные технологии Hadoop
• HDFS (Hadoop Distributed File System) – хранение
данных
• MapReduce – обработка данных
7
Hadoop и Mahout Созыкин А.В.
HDFS
Файл
8
Hadoop и Mahout Созыкин А.В.
HDFS
Файл
64МБ 64МБ 64МБ
9
Hadoop и Mahout Созыкин А.В.
HDFS
Файл
64МБ 64МБ 64МБ
10
Hadoop и Mahout Созыкин А.В.
HDFS
Data Node 1 Data Node 2 Data Node 3
Data Node 4 Data Node 5 Data Node 6
Name
Node
1, 4, 6
1, 3, 5
1, 2, 5
11
Hadoop и Mahout Созыкин А.В.
Работа с HDFS
• Блоки файлов в HDFS распределены по разным
серверам:
• Нельзя смонтировать HDFS
• Не работают стандартные команды ls, cp, mv и т.п.
• Необходимо использовать специальную команду:
• $ hadoop dfs –cmd
• Примеры:
$ hadoop dfs -ls
Found 3 items
-rw-r--r-- 1 hadoop supergroup 0 2011-06-22 13:58 /user/hadoop/file1
-rw-r--r-- 1 hadoop supergroup 0 2011-06-22 13:58 /user/hadoop/file2
-rw-r--r-- 1 hadoop supergroup 0 2011-06-22 13:58 /user/hadoop/file3
$ hadoop dfs -put /tmp/file4
$ hadoop dfs -cat file4
Hello, world!
12
Hadoop и Mahout Созыкин А.В.
Особенности HDFS
• HDFS – специализированная файловая система,
оптимизированная для параллельной потоковой работы
с большими файлами
• Подходит не для всех задач!
• Модель Write Once Read Many:
• Нельзя изменять файл, можно только добавлять в
конец
• Большой размер блока:
• По-молчанию 64 МБ (часто 128 или 256 МБ)
• Не эффективен произвольный доступ (базы
данных и т.п.)
13
Hadoop и Mahout Созыкин А.В.
MapReduce
• MapReduce – технология распределенных вычислений
• Цель MapReduce – разделить логику приложения и
организацию распределенного взаимодействия:
• Программист реализует только логику приложения
• Распределенная работа в кластере
обеспечивается автоматически
• MapReduce работает с данными как с парами
Ключ:Значение:
• смещение в файле: текст
• идентификатор пользователя: профиль
• пользователь: список друзей
• временная метка: событие в журнале
Источник: http://www.youtube.com/watch?v=SS27F-hYWfU
14
Hadoop и Mahout Созыкин А.В.
Функции Map и Reduce
Источник: http://developer.yahoo.com/hadoop/tutorial/module4.html
15
Hadoop и Mahout Созыкин А.В.
Пример MapReduce: WordCount
• Задача: посчитать, сколько раз слово встречается в
файле
• Количество обращений к Web-страницам
• Количество просмотра видео или прослушивания
песни
• Исходные данные:
• Текстовые файлы
• Каждый файл делится на пары: Смещение:Тест
• Пример:
• Цель MapReduce – разделить логику приложения и организацию
распределенного взаимодействия. Программист реализует только
логику приложения
16
Hadoop и Mahout Созыкин А.В.
WordCount: функция Map
• Исходные данные:
• Цель MapReduce – разделить логику приложения и организацию
распределенного взаимодействия. Программист реализует только
логику приложения
• Результаты обработки:
• <цель, 1>, <mapreduce,1>, <разделить, 1>, <логику,1>, <приложения,
1>, <и, 1>, <организацию, 1>, <распределенного, 1>,
<взаимодействия, 1>, <программист, 1>, <реализует, 1>, <только,1>,
<логику, 1>, <приложения, 1>
• Сортировка и группировка по ключу:
• <mapreduce,1>, <взаимодействия, 1>, <и, 1>, <логику,1>, <логику,
1>, <организацию, 1>, <приложения, 1>, <приложения, 1>,
<программист, 1>, <разделить, 1>, <распределенного, 1>, <реализует,
1>, <только,1>, <цель, 1>.
17
Hadoop и Mahout Созыкин А.В.
WordCount: функция Reduce
• Пары с одинаковыми ключами передаются в одну
функцию Reduce:
<mapreduce,1> → <mapreduce,1>
<взаимодействия, 1> → <взаимодействия, 1>
<и, 1> → <и, 1>
<логику,1>, <логику, 1> → <логику, 2>
<организацию, 1> → <организацию, 1>
<приложения, 1>, <приложения, 1> → <приложения, 2>
<программист, 1> → <программист, 1>
<разделить, 1> → <разделить, 1>
<распределенного, 1> → <распределенного, 1>
<реализует, 1> → <реализует, 1>
<только,1> → <только,1>
<цель, 1> → <цель, 1>
18
Hadoop и Mahout Созыкин А.В.
Модель MapReduce
• MapReduce – странный подход к решению задачи
WordCount
• Есть более простые и интуитивно понятные решения
• Достоинства MapReduce:
• Возможность автоматического распараллеливания – функции Map и
Reduce могут обрабатывать элементы списка параллельно не
зависимо друг от друга
• Масштабируемость – данные могут размещаться на разных
серверах (в HDFS) и обрабатываться также на разных серверах
• Отказоустойчивость – при выходе из строя сервера функции Map
или Reduce запускаются на другом сервере
• Недостатки MapReduce:
• Фиксированный алгоритм обработки данных
• Высокие накладные расходы на распараллеливание
19
Hadoop и Mahout Созыкин А.В.
Перемещение вычислений к данным
20
Hadoop и Mahout Созыкин А.В.
Пример запуска задачи Hadoop
• $ hadoop jar hadoop-examples-*.jar grep input
output 'dfs[a-z.]+'
• hadoop-examples-*.jar – Имя архива с примерами из
дистрибутива Hadoop
• grep – Имя команды в архиве с примерами
• input – Каталог входных данных (в HDFS)
• output – Каталог выходных данных (в HDFS)
• 'dfs[a-z.]+' – Шаблон для поиска
21
Hadoop и Mahout Созыкин А.В.
Экосистема Hadoop
• MapReduce – мощная модель программирования, но
низкоуровневая
• Реализация практически полезных алгоритмов требует
высоких трудозатрат
• Hadoop сложен в установке и администрировании
• На основе Hadoop сложилась экосистема:
• Программные продукты для решения различных прикладных
задач, использующие Hadoop для масштабирования
• Дистрибутивы Hadoop
• Облачный хостинг для Hadoop
22
Hadoop и Mahout Созыкин А.В.
Экосистема Hadoop
• Pig – декларативный язык анализа данных
• Hive – анализ данных с использованием
языка, близкого к SQL
• Oozie – поток работ в Hadoop
• Hbase – база данных (нереляционная),
аналог Google Big Table
• Mahout – машинное обучение
• Sqoop – перенос данных из РСУБД в
Hadoop и наоборот
• Flume – перенос логов в HDFS
• Zookeeper, MRUnit, Avro, Giraph, Ambari,
Cassandra, HCatalog, Fuse-DFS и т.д.
23
Hadoop и Mahout Созыкин А.В.
Дистрибутивы Hadoop
• Apache
• hadoop.apache.org
• Оригинальный дистрибутив, только Hadoop
• Альтернативные дистрибутивы:
• Совместно Hadoop, HBase, Pig, Hive, Mahout, Sqoop,
Zookeeper и др.
• Средства автоматизации установки и
администрирования, мониторинг, безопасность
• Поставщики альтернативных
дистрибутивов:
• Cloudera
• MapR
• Hortonworks
• Intel
24
Hadoop и Mahout Созыкин А.В.
Облачный хостинг Hadoop
• Amazon Elastic MapReduce (Amazon EMR)
• http://aws.amazon.com/elasticmapreduce/
• Партнерство с MapR
• Apache Hadoop on Rackspace
• http://www.rackspace.com/knowledge_center/article/
apache-hadoop-on-rackspace-private-cloud
• Партнерство с Hortonworks
• Microsoft Windows Azure
• http://www.windowsazure.com/en-us/home/scenarios/big-data/
• Qubole Data Service
• http://www.qubole.com/qubole-data-service
• Web-интерфейс для анализа данных с Hadoop, Hive,
Pig и др. на Amazon EMR
25
Hadoop и Mahout Созыкин А.В.
Apache Mahout
• Масштабируемая библиотека машинного обучения
(machine learning)
• Режимы работы:
• В кластере Hadoop
• Отдельно на одном компьютере
• Mahout – слово из индийского языка, означает
погонщик слонов
• Открытые исходные коды:
• Написан на Java
• Лицензия Apache 2.0
• Страница проекта:
• http://mahout.apache.org/
26
Hadoop и Mahout Созыкин А.В.
Машинное обучение в Mahout
• Коллаборативная (совместная) фильтрация
• Рекомендации
• Кластеризация
• Объединение объектов в группы (кластеры, заранее не
известные)
• Примеры: Google News объединяет новости на одну тему
• Алгоритмы в Mahout: K-Means, Fuzzy K-Means, Mean Shift,
Dirichlet, Canopy и др.
• Классификация:
• Определение принадлежности объекта к заданному классу
(классы известны заранее)
• Примеры: определение спама, определение тематики
текста (текст о политике, спорте и т.п.)
• Алгоритмы в Mahout: Logistic Regression, Naive Bayes,
Support Vector Machines, Online Passive Aggressive и др.
27
Hadoop и Mahout Созыкин А.В.
Рекомендации
28
Hadoop и Mahout Созыкин А.В.
Актуальность рекомендаций
• Хорошая система рекомендаций может существенно
повысит доход от продаж и рекламы
• $1M NetflixPrize:
• Компания Netflix устроила соревнования по улучшению
алгоритма рекомендации DVD
• Размер приза: 1 миллион долларов
• Условие получения приза: улучшить алгоритм
рекомендации на 10%
• Приз получила команда «BellKor’s Pragmatic Chaos» в
2009 г.
• Соревнования проходили с 2006 по 2009 г.
• Каждый год выплачивался приз за прогресс $50 000
• http://www.netflixprize.com/
29
Hadoop и Mahout Созыкин А.В.
Способы рекомендаций
• На основе контента
• Пример: пользователь выбрал книгу Пушкина, значит
можно рекомендовать ему другую книгу Пушкина или
классическую литературу
• Недостаток: система рекомендаций сильно зависит от
домена и непереносима
• На основе предпочтений
• Рекомендации на основе оценок пользователей
• Объекты рекомендации могут быть любыми
• Можно реализовать общую систему, не зависимую от
домена
• Реализован в Mahout
30
Hadoop и Mahout Созыкин А.В.
Предпочтение
• Рекомендации в Mahout выдаются на основе
предпочтений пользователей
• Предпочтение в Mahout:
• Пользователь (целое число)
• Объект (целое число)
• Предпочтение (число двойной точности)
• Пример данных о предпочтениях для Mahout из
проекта GroupLens (Университет Минесоты) – оценка
пользователями фильмов:
196 242 3 881250949
186 302 3 891717742
22 377 1 878887116
244 51 2 880606923
user id | item id | rating | timestamp
(Не используется
в Mahout)
31
Hadoop и Mahout Созыкин А.В.
Подходы к рекомендации
• На основе пользователей:
• Найти пользователей с похожими вкусами
• Посмотреть, что нравится этим пользователям
• Рекомендовать объекты в соответствии с предпочтениями
похожих пользователей
• Недостатки: подход плохо масштабируется, предпочтения
быстро меняются
• На основе объектов:
• Найти объекты, похожие на те, которые понравились
пользователю
• Рекомендовать наиболее популярные из них
• Преимущества: хорошо масштабируется, оценки объектов
меняются редко. Рекомендации можно генерировать в
автономном режиме (с использованием Hadoop)
32
Hadoop и Mahout Созыкин А.В.
Рекомендации на основе пользователей
public static void main(String[] args) throws Exception {
DataModel model = new FileDataModel (new File("u.data"));
UserSimilarity similarity = new PearsonCorrelationSimilarity (model);
UserNeighborhood neighborhood =
new NearestNUserNeighborhood (2, similarity, model);
Recommender recommender = new GenericUserBasedRecommender (
model, neighborhood, similarity);
List<RecommendedItem> recommendations = recommender.recommend(1, 1);
for (RecommendedItem recommendation : recommendations) {
System.out.println(recommendation);
}
}
RecommendedItem [item:643, value:4.27682]
33
Hadoop и Mahout Созыкин А.В.
Рекомендации на основе пользователей
Источник: Sean Owen, Robin Anil, Ted Dunning, and Ellen Friedman. Mahout in Action
34
Hadoop и Mahout Созыкин А.В.
Выбор похожих пользователей
• Как определить, что вкусы пользователей похожи?
• Мера «похожести» - число от -1 до 1.
• 1 – вкусы пользователей совпадают
• 0 – у пользователей нет общих вкусов
• -1 – вкусы пользователей противоположны
• Mahout использует несколько алгоритмов расчета
«похожести»:
• Коэффициент Пирсона
• Евклидово расстояние
• Корреляция Спирмена
• Коэффициент Танимото
• Логарифмическое правдоподобие
35
Hadoop и Mahout Созыкин А.В.
«Соседние» пользователи
Источник: Sean Owen, Robin Anil, Ted Dunning, and Ellen Friedman. Mahout in Action
Фиксированное число соседей
(NearestNUserNeighborhood )
Соседи в пределах границы
(ThresholdUserNeighborhood)
36
Hadoop и Mahout Созыкин А.В.
Выбор параметров
• Какой тип «похожести» пользователей лучше?
• Какой тип «соседства» лучше?
• Критерии оценки:
• Однозначного ответа нет
• Результаты разные для разных данных
• Проводите эксперименты с разными параметрами!
Источник: Sean Owen, Robin Anil, Ted Dunning, and Ellen Friedman. Mahout in Action
37
Hadoop и Mahout Созыкин А.В.
Рекомендации на основе объектов
public static void main(String[] args) throws Exception {
DataModel model = new FileDataModel (new File("u.data"));
ItemSimilarity itemSimilarity = new LogLikelihoodSimilarity(dataModel);
ItemBasedRecommender recommender =
new GenericItemBasedRecommender(dataModel, itemSimilarity);
List<RecommendedItem> recommendations =
recommender.recommend(1, 1)
for (RecommendedItem recommendation : recommendations) {
System.out.println(recommendation);
}
}
RecommendedItem [item:271, value:4.27682]
38
Hadoop и Mahout Созыкин А.В.
Mahout и Hadoop
Источник: Sean Owen, Robin Anil, Ted Dunning, and Ellen Friedman. Mahout in Action
39
Hadoop и Mahout Созыкин А.В.
Mahout и Hadoop
• Mahout может работать как отдельно, так и в
кластере Hadoop
• Запуск рекомендации Mahout в Hadoop выполняется
с помощью класса RecommenderJob
• Данные о предпочтениях должны быть записаны в
HDFS
• Полученные рекомендации записываются в HDFS
• Рекомендации можно перенести в базу данных с помощью sqoop
40
Hadoop и Mahout Созыкин А.В.
Пример запуска Mahout в Hadoop
$ hadoop jar mahout-core-0.7-job.jar 
org.apache.mahout.cf.taste.hadoop.item.RecommenderJob 
-Dmapred.input.dir=input
-Dmapred.output.dir=output
--usersFile users_list.txt
• Возможные параметры:
• Dmapred.input.dir – каталог с данными о предпочтениях (в
HDFS, может быть несколько файлов)
• Dmapred.output.dir – каталог, куда записываются
сгенерированные рекомендации (в HDFS)
• --usersFile – файл с идентификаторами пользователей,
для которых нужно сгенерировать рекомендации
• --similarityClassname – имя класса, который реализует
расчет «похожести»
• --numRecommendations – количество рекомендаций на одного
пользователя
41
Hadoop и Mahout Созыкин А.В.
Итоги
• MapReduce – программная модель для обработки
больших объемов данных (BigData)
• Hadoop – открытая реализация MapReduce
• Экосистема Hadoop
• Mahout – машинное обучение в Hadoop:
• Рекомендации, классификация, кластеризация
• Рекомендации в Mahout:
• Предпочтения: пользователь, объект, оценка
• Рекомендации на основе пользователей и на основе
объектов
• «Похожесть» пользователей и объектов
• «Соседство» пользователей
• Запуск Mahout RecommenderJob в Hadoop
42
Hadoop и Mahout Созыкин А.В.
Вопросы?
Контакты
Андрей Созыкин
avs@imm.uran.ru
www.asozykin.ru

Contenu connexe

En vedette

DUMP-2013 Наука и жизнь - Атомы данных, деревья транзакций и прототип реализа...
DUMP-2013 Наука и жизнь - Атомы данных, деревья транзакций и прототип реализа...DUMP-2013 Наука и жизнь - Атомы данных, деревья транзакций и прототип реализа...
DUMP-2013 Наука и жизнь - Атомы данных, деревья транзакций и прототип реализа...it-people
 
DUMP-2013 Наука и жизнь - Суперкомпьютер «УРАН» - Созыкин Андрей
DUMP-2013 Наука и жизнь - Суперкомпьютер «УРАН» - Созыкин АндрейDUMP-2013 Наука и жизнь - Суперкомпьютер «УРАН» - Созыкин Андрей
DUMP-2013 Наука и жизнь - Суперкомпьютер «УРАН» - Созыкин Андрейit-people
 
DUMP-2013 Наука и жизнь - Опыт программирования роботов на языке высокого уро...
DUMP-2013 Наука и жизнь - Опыт программирования роботов на языке высокого уро...DUMP-2013 Наука и жизнь - Опыт программирования роботов на языке высокого уро...
DUMP-2013 Наука и жизнь - Опыт программирования роботов на языке высокого уро...it-people
 
DUMP-2013 Наука и жизнь - Найти за одну секунду - Бугай Владимир
DUMP-2013 Наука и жизнь - Найти за одну секунду - Бугай ВладимирDUMP-2013 Наука и жизнь - Найти за одну секунду - Бугай Владимир
DUMP-2013 Наука и жизнь - Найти за одну секунду - Бугай Владимирit-people
 
DUMP-2013 Наука и жизнь - Практические применения семантических вычислений - ...
DUMP-2013 Наука и жизнь - Практические применения семантических вычислений - ...DUMP-2013 Наука и жизнь - Практические применения семантических вычислений - ...
DUMP-2013 Наука и жизнь - Практические применения семантических вычислений - ...it-people
 
DUMP-2013 Наука и жизнь - Современная математика компьютерного зрения - Перев...
DUMP-2013 Наука и жизнь - Современная математика компьютерного зрения - Перев...DUMP-2013 Наука и жизнь - Современная математика компьютерного зрения - Перев...
DUMP-2013 Наука и жизнь - Современная математика компьютерного зрения - Перев...it-people
 
DUMP-2013 Наука и жизнь - Приближённый подсчёт количества уникальных элементо...
DUMP-2013 Наука и жизнь - Приближённый подсчёт количества уникальных элементо...DUMP-2013 Наука и жизнь - Приближённый подсчёт количества уникальных элементо...
DUMP-2013 Наука и жизнь - Приближённый подсчёт количества уникальных элементо...it-people
 
Proof of Concept for Hadoop: storage and analytics of electrical time-series
Proof of Concept for Hadoop: storage and analytics of electrical time-seriesProof of Concept for Hadoop: storage and analytics of electrical time-series
Proof of Concept for Hadoop: storage and analytics of electrical time-seriesDataWorks Summit
 
Big Data Analytics in Energy & Utilities
Big Data Analytics in Energy & UtilitiesBig Data Analytics in Energy & Utilities
Big Data Analytics in Energy & UtilitiesAnders Quitzau
 
Big Data Analytics with Hadoop
Big Data Analytics with HadoopBig Data Analytics with Hadoop
Big Data Analytics with HadoopPhilippe Julio
 

En vedette (10)

DUMP-2013 Наука и жизнь - Атомы данных, деревья транзакций и прототип реализа...
DUMP-2013 Наука и жизнь - Атомы данных, деревья транзакций и прототип реализа...DUMP-2013 Наука и жизнь - Атомы данных, деревья транзакций и прототип реализа...
DUMP-2013 Наука и жизнь - Атомы данных, деревья транзакций и прототип реализа...
 
DUMP-2013 Наука и жизнь - Суперкомпьютер «УРАН» - Созыкин Андрей
DUMP-2013 Наука и жизнь - Суперкомпьютер «УРАН» - Созыкин АндрейDUMP-2013 Наука и жизнь - Суперкомпьютер «УРАН» - Созыкин Андрей
DUMP-2013 Наука и жизнь - Суперкомпьютер «УРАН» - Созыкин Андрей
 
DUMP-2013 Наука и жизнь - Опыт программирования роботов на языке высокого уро...
DUMP-2013 Наука и жизнь - Опыт программирования роботов на языке высокого уро...DUMP-2013 Наука и жизнь - Опыт программирования роботов на языке высокого уро...
DUMP-2013 Наука и жизнь - Опыт программирования роботов на языке высокого уро...
 
DUMP-2013 Наука и жизнь - Найти за одну секунду - Бугай Владимир
DUMP-2013 Наука и жизнь - Найти за одну секунду - Бугай ВладимирDUMP-2013 Наука и жизнь - Найти за одну секунду - Бугай Владимир
DUMP-2013 Наука и жизнь - Найти за одну секунду - Бугай Владимир
 
DUMP-2013 Наука и жизнь - Практические применения семантических вычислений - ...
DUMP-2013 Наука и жизнь - Практические применения семантических вычислений - ...DUMP-2013 Наука и жизнь - Практические применения семантических вычислений - ...
DUMP-2013 Наука и жизнь - Практические применения семантических вычислений - ...
 
DUMP-2013 Наука и жизнь - Современная математика компьютерного зрения - Перев...
DUMP-2013 Наука и жизнь - Современная математика компьютерного зрения - Перев...DUMP-2013 Наука и жизнь - Современная математика компьютерного зрения - Перев...
DUMP-2013 Наука и жизнь - Современная математика компьютерного зрения - Перев...
 
DUMP-2013 Наука и жизнь - Приближённый подсчёт количества уникальных элементо...
DUMP-2013 Наука и жизнь - Приближённый подсчёт количества уникальных элементо...DUMP-2013 Наука и жизнь - Приближённый подсчёт количества уникальных элементо...
DUMP-2013 Наука и жизнь - Приближённый подсчёт количества уникальных элементо...
 
Proof of Concept for Hadoop: storage and analytics of electrical time-series
Proof of Concept for Hadoop: storage and analytics of electrical time-seriesProof of Concept for Hadoop: storage and analytics of electrical time-series
Proof of Concept for Hadoop: storage and analytics of electrical time-series
 
Big Data Analytics in Energy & Utilities
Big Data Analytics in Energy & UtilitiesBig Data Analytics in Energy & Utilities
Big Data Analytics in Energy & Utilities
 
Big Data Analytics with Hadoop
Big Data Analytics with HadoopBig Data Analytics with Hadoop
Big Data Analytics with Hadoop
 

Similaire à DUMP-2013 Наука и жизнь - Использование Hadoop в машинном обучении - Созыкин Андрей

Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Alexey Zinoviev
 
Платформа Apache Hadoop
Платформа Apache HadoopПлатформа Apache Hadoop
Платформа Apache HadoopDotNetConf
 
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)Andrei Nikolaenko
 
Hadoop on OpenStack
Hadoop on OpenStackHadoop on OpenStack
Hadoop on OpenStackYandex
 
ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop Vladimir Klimontovich
 
Cостав дистрибутва Hortonworks data platform 2.3
Cостав дистрибутва Hortonworks data platform 2.3Cостав дистрибутва Hortonworks data platform 2.3
Cостав дистрибутва Hortonworks data platform 2.3Евгений Плакса
 
1 big data oracle digi oct
1 big data oracle digi oct1 big data oracle digi oct
1 big data oracle digi octantishmanti
 
Hadoop > cascading -> cascalog (very short)
Hadoop  > cascading -> cascalog (very short)Hadoop  > cascading -> cascalog (very short)
Hadoop > cascading -> cascalog (very short)Andrew Panfilov
 
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo). С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo). Badoo Development
 
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)Ontico
 
Cервис рекомендаций на виртуальном Hadoop кластере (Роман Зыков)
Cервис рекомендаций на виртуальном Hadoop кластере (Роман Зыков)Cервис рекомендаций на виртуальном Hadoop кластере (Роман Зыков)
Cервис рекомендаций на виртуальном Hadoop кластере (Роман Зыков)Ontico
 
Слоны в облаках
Слоны в облакахСлоны в облаках
Слоны в облакахPavel Mezentsev
 
DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.Alexander Titov
 
Rapid Deployment of Hadoop Development Environments
Rapid Deployment of Hadoop Development EnvironmentsRapid Deployment of Hadoop Development Environments
Rapid Deployment of Hadoop Development EnvironmentsAndrei Nikolaenko
 
Кластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможностиКластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможностиAlexey Demidchuk
 
Технологии и продукты Oracle для обработки и анализа Больших Данных
Технологии и продукты Oracle для обработки и анализа Больших ДанныхТехнологии и продукты Oracle для обработки и анализа Больших Данных
Технологии и продукты Oracle для обработки и анализа Больших ДанныхAndrey Akulov
 
Решения Oracle для Big Data
Решения Oracle для Big DataРешения Oracle для Big Data
Решения Oracle для Big DataAndrey Akulov
 

Similaire à DUMP-2013 Наука и жизнь - Использование Hadoop в машинном обучении - Созыкин Андрей (20)

Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15
 
Платформа Apache Hadoop
Платформа Apache HadoopПлатформа Apache Hadoop
Платформа Apache Hadoop
 
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
 
Hadoop on OpenStack
Hadoop on OpenStackHadoop on OpenStack
Hadoop on OpenStack
 
ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop
 
Cостав дистрибутва Hortonworks data platform 2.3
Cостав дистрибутва Hortonworks data platform 2.3Cостав дистрибутва Hortonworks data platform 2.3
Cостав дистрибутва Hortonworks data platform 2.3
 
1 big data oracle digi oct
1 big data oracle digi oct1 big data oracle digi oct
1 big data oracle digi oct
 
Hadoop > cascading -> cascalog (very short)
Hadoop  > cascading -> cascalog (very short)Hadoop  > cascading -> cascalog (very short)
Hadoop > cascading -> cascalog (very short)
 
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo). С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
 
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
 
Cервис рекомендаций на виртуальном Hadoop кластере (Роман Зыков)
Cервис рекомендаций на виртуальном Hadoop кластере (Роман Зыков)Cервис рекомендаций на виртуальном Hadoop кластере (Роман Зыков)
Cервис рекомендаций на виртуальном Hadoop кластере (Роман Зыков)
 
Apache Hadoop
Apache HadoopApache Hadoop
Apache Hadoop
 
Слоны в облаках
Слоны в облакахСлоны в облаках
Слоны в облаках
 
Big Data и ArcGIS
Big Data и ArcGISBig Data и ArcGIS
Big Data и ArcGIS
 
апрель
апрельапрель
апрель
 
DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.
 
Rapid Deployment of Hadoop Development Environments
Rapid Deployment of Hadoop Development EnvironmentsRapid Deployment of Hadoop Development Environments
Rapid Deployment of Hadoop Development Environments
 
Кластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможностиКластер БГУИР: расширенные возможности
Кластер БГУИР: расширенные возможности
 
Технологии и продукты Oracle для обработки и анализа Больших Данных
Технологии и продукты Oracle для обработки и анализа Больших ДанныхТехнологии и продукты Oracle для обработки и анализа Больших Данных
Технологии и продукты Oracle для обработки и анализа Больших Данных
 
Решения Oracle для Big Data
Решения Oracle для Big DataРешения Oracle для Big Data
Решения Oracle для Big Data
 

Plus de it-people

«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Coit-people
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghubit-people
 
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrainsit-people
 
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologiesit-people
 
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндексit-people
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...it-people
 
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalrit-people
 
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...it-people
 
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАНit-people
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банкit-people
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Coit-people
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНСit-people
 
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...it-people
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologiesit-people
 
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn Systemit-people
 
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologiesit-people
 
«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндексit-people
 
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...it-people
 
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognicianit-people
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...it-people
 

Plus de it-people (20)

«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub
 
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
 
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
 
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
 
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
 
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
 
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
 
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
 
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
 
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies
 
«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс
 
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
 
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
 

DUMP-2013 Наука и жизнь - Использование Hadoop в машинном обучении - Созыкин Андрей

  • 1. Использование Hadoop и Mahout в машинном обучении Созыкин Андрей Владимирович к.т.н. зав.кафедрой высокопроизводительных компьютерных технологий
  • 2. 2 Hadoop и Mahout Созыкин А.В. Big Data • Big Data – задачи обработки больших объемов данных: • Терабайты и петабайты • Высокая скорость обработки – невозможно сделать традиционными подходами • Оценки аналитиков Gartner и IDC: • Big Data входит в ТОП 10 наиболее важных тенденций развития информационных технологий • Рынок Big Data один из самых быстрорастущих • MapReduce – одна из наиболее популярных моделей обработки данных в Big Data
  • 3. 3 Hadoop и Mahout Созыкин А.В. План • Основы MapReduce и Apache Hadoop • Экосистема Hadoop • Машинное обучение в Apache Mahout
  • 4. 4 Hadoop и Mahout Созыкин А.В. История Hadoop и MapReduce • Технологию MapReduce придумали в Google для системы поиска в Интернет: • Цель – хранить и обрабатывать большие объемы данных на обычных компьютерах, объединенных сетью • Goggle не распространяет свою реализацию MapReduce • Jeffrey Dean, Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters • Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung. The Google File System • Apache Hadoop – открытая реализация MapReduce: • Разработан на основе идей Google • Написан на Java • http://hadoop.apache.org/
  • 5. 5 Hadoop и Mahout Созыкин А.В. Кто использует Hadoop • Кто использует Hadoop: • Самый большой кластер Hadoop в Yahoo!: • 4500 серверов • Используется для поисковой системы и подбора рекламных объявлений
  • 6. 6 Hadoop и Mahout Созыкин А.В. Основные технологии Hadoop • HDFS (Hadoop Distributed File System) – хранение данных • MapReduce – обработка данных
  • 7. 7 Hadoop и Mahout Созыкин А.В. HDFS Файл
  • 8. 8 Hadoop и Mahout Созыкин А.В. HDFS Файл 64МБ 64МБ 64МБ
  • 9. 9 Hadoop и Mahout Созыкин А.В. HDFS Файл 64МБ 64МБ 64МБ
  • 10. 10 Hadoop и Mahout Созыкин А.В. HDFS Data Node 1 Data Node 2 Data Node 3 Data Node 4 Data Node 5 Data Node 6 Name Node 1, 4, 6 1, 3, 5 1, 2, 5
  • 11. 11 Hadoop и Mahout Созыкин А.В. Работа с HDFS • Блоки файлов в HDFS распределены по разным серверам: • Нельзя смонтировать HDFS • Не работают стандартные команды ls, cp, mv и т.п. • Необходимо использовать специальную команду: • $ hadoop dfs –cmd • Примеры: $ hadoop dfs -ls Found 3 items -rw-r--r-- 1 hadoop supergroup 0 2011-06-22 13:58 /user/hadoop/file1 -rw-r--r-- 1 hadoop supergroup 0 2011-06-22 13:58 /user/hadoop/file2 -rw-r--r-- 1 hadoop supergroup 0 2011-06-22 13:58 /user/hadoop/file3 $ hadoop dfs -put /tmp/file4 $ hadoop dfs -cat file4 Hello, world!
  • 12. 12 Hadoop и Mahout Созыкин А.В. Особенности HDFS • HDFS – специализированная файловая система, оптимизированная для параллельной потоковой работы с большими файлами • Подходит не для всех задач! • Модель Write Once Read Many: • Нельзя изменять файл, можно только добавлять в конец • Большой размер блока: • По-молчанию 64 МБ (часто 128 или 256 МБ) • Не эффективен произвольный доступ (базы данных и т.п.)
  • 13. 13 Hadoop и Mahout Созыкин А.В. MapReduce • MapReduce – технология распределенных вычислений • Цель MapReduce – разделить логику приложения и организацию распределенного взаимодействия: • Программист реализует только логику приложения • Распределенная работа в кластере обеспечивается автоматически • MapReduce работает с данными как с парами Ключ:Значение: • смещение в файле: текст • идентификатор пользователя: профиль • пользователь: список друзей • временная метка: событие в журнале Источник: http://www.youtube.com/watch?v=SS27F-hYWfU
  • 14. 14 Hadoop и Mahout Созыкин А.В. Функции Map и Reduce Источник: http://developer.yahoo.com/hadoop/tutorial/module4.html
  • 15. 15 Hadoop и Mahout Созыкин А.В. Пример MapReduce: WordCount • Задача: посчитать, сколько раз слово встречается в файле • Количество обращений к Web-страницам • Количество просмотра видео или прослушивания песни • Исходные данные: • Текстовые файлы • Каждый файл делится на пары: Смещение:Тест • Пример: • Цель MapReduce – разделить логику приложения и организацию распределенного взаимодействия. Программист реализует только логику приложения
  • 16. 16 Hadoop и Mahout Созыкин А.В. WordCount: функция Map • Исходные данные: • Цель MapReduce – разделить логику приложения и организацию распределенного взаимодействия. Программист реализует только логику приложения • Результаты обработки: • <цель, 1>, <mapreduce,1>, <разделить, 1>, <логику,1>, <приложения, 1>, <и, 1>, <организацию, 1>, <распределенного, 1>, <взаимодействия, 1>, <программист, 1>, <реализует, 1>, <только,1>, <логику, 1>, <приложения, 1> • Сортировка и группировка по ключу: • <mapreduce,1>, <взаимодействия, 1>, <и, 1>, <логику,1>, <логику, 1>, <организацию, 1>, <приложения, 1>, <приложения, 1>, <программист, 1>, <разделить, 1>, <распределенного, 1>, <реализует, 1>, <только,1>, <цель, 1>.
  • 17. 17 Hadoop и Mahout Созыкин А.В. WordCount: функция Reduce • Пары с одинаковыми ключами передаются в одну функцию Reduce: <mapreduce,1> → <mapreduce,1> <взаимодействия, 1> → <взаимодействия, 1> <и, 1> → <и, 1> <логику,1>, <логику, 1> → <логику, 2> <организацию, 1> → <организацию, 1> <приложения, 1>, <приложения, 1> → <приложения, 2> <программист, 1> → <программист, 1> <разделить, 1> → <разделить, 1> <распределенного, 1> → <распределенного, 1> <реализует, 1> → <реализует, 1> <только,1> → <только,1> <цель, 1> → <цель, 1>
  • 18. 18 Hadoop и Mahout Созыкин А.В. Модель MapReduce • MapReduce – странный подход к решению задачи WordCount • Есть более простые и интуитивно понятные решения • Достоинства MapReduce: • Возможность автоматического распараллеливания – функции Map и Reduce могут обрабатывать элементы списка параллельно не зависимо друг от друга • Масштабируемость – данные могут размещаться на разных серверах (в HDFS) и обрабатываться также на разных серверах • Отказоустойчивость – при выходе из строя сервера функции Map или Reduce запускаются на другом сервере • Недостатки MapReduce: • Фиксированный алгоритм обработки данных • Высокие накладные расходы на распараллеливание
  • 19. 19 Hadoop и Mahout Созыкин А.В. Перемещение вычислений к данным
  • 20. 20 Hadoop и Mahout Созыкин А.В. Пример запуска задачи Hadoop • $ hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' • hadoop-examples-*.jar – Имя архива с примерами из дистрибутива Hadoop • grep – Имя команды в архиве с примерами • input – Каталог входных данных (в HDFS) • output – Каталог выходных данных (в HDFS) • 'dfs[a-z.]+' – Шаблон для поиска
  • 21. 21 Hadoop и Mahout Созыкин А.В. Экосистема Hadoop • MapReduce – мощная модель программирования, но низкоуровневая • Реализация практически полезных алгоритмов требует высоких трудозатрат • Hadoop сложен в установке и администрировании • На основе Hadoop сложилась экосистема: • Программные продукты для решения различных прикладных задач, использующие Hadoop для масштабирования • Дистрибутивы Hadoop • Облачный хостинг для Hadoop
  • 22. 22 Hadoop и Mahout Созыкин А.В. Экосистема Hadoop • Pig – декларативный язык анализа данных • Hive – анализ данных с использованием языка, близкого к SQL • Oozie – поток работ в Hadoop • Hbase – база данных (нереляционная), аналог Google Big Table • Mahout – машинное обучение • Sqoop – перенос данных из РСУБД в Hadoop и наоборот • Flume – перенос логов в HDFS • Zookeeper, MRUnit, Avro, Giraph, Ambari, Cassandra, HCatalog, Fuse-DFS и т.д.
  • 23. 23 Hadoop и Mahout Созыкин А.В. Дистрибутивы Hadoop • Apache • hadoop.apache.org • Оригинальный дистрибутив, только Hadoop • Альтернативные дистрибутивы: • Совместно Hadoop, HBase, Pig, Hive, Mahout, Sqoop, Zookeeper и др. • Средства автоматизации установки и администрирования, мониторинг, безопасность • Поставщики альтернативных дистрибутивов: • Cloudera • MapR • Hortonworks • Intel
  • 24. 24 Hadoop и Mahout Созыкин А.В. Облачный хостинг Hadoop • Amazon Elastic MapReduce (Amazon EMR) • http://aws.amazon.com/elasticmapreduce/ • Партнерство с MapR • Apache Hadoop on Rackspace • http://www.rackspace.com/knowledge_center/article/ apache-hadoop-on-rackspace-private-cloud • Партнерство с Hortonworks • Microsoft Windows Azure • http://www.windowsazure.com/en-us/home/scenarios/big-data/ • Qubole Data Service • http://www.qubole.com/qubole-data-service • Web-интерфейс для анализа данных с Hadoop, Hive, Pig и др. на Amazon EMR
  • 25. 25 Hadoop и Mahout Созыкин А.В. Apache Mahout • Масштабируемая библиотека машинного обучения (machine learning) • Режимы работы: • В кластере Hadoop • Отдельно на одном компьютере • Mahout – слово из индийского языка, означает погонщик слонов • Открытые исходные коды: • Написан на Java • Лицензия Apache 2.0 • Страница проекта: • http://mahout.apache.org/
  • 26. 26 Hadoop и Mahout Созыкин А.В. Машинное обучение в Mahout • Коллаборативная (совместная) фильтрация • Рекомендации • Кластеризация • Объединение объектов в группы (кластеры, заранее не известные) • Примеры: Google News объединяет новости на одну тему • Алгоритмы в Mahout: K-Means, Fuzzy K-Means, Mean Shift, Dirichlet, Canopy и др. • Классификация: • Определение принадлежности объекта к заданному классу (классы известны заранее) • Примеры: определение спама, определение тематики текста (текст о политике, спорте и т.п.) • Алгоритмы в Mahout: Logistic Regression, Naive Bayes, Support Vector Machines, Online Passive Aggressive и др.
  • 27. 27 Hadoop и Mahout Созыкин А.В. Рекомендации
  • 28. 28 Hadoop и Mahout Созыкин А.В. Актуальность рекомендаций • Хорошая система рекомендаций может существенно повысит доход от продаж и рекламы • $1M NetflixPrize: • Компания Netflix устроила соревнования по улучшению алгоритма рекомендации DVD • Размер приза: 1 миллион долларов • Условие получения приза: улучшить алгоритм рекомендации на 10% • Приз получила команда «BellKor’s Pragmatic Chaos» в 2009 г. • Соревнования проходили с 2006 по 2009 г. • Каждый год выплачивался приз за прогресс $50 000 • http://www.netflixprize.com/
  • 29. 29 Hadoop и Mahout Созыкин А.В. Способы рекомендаций • На основе контента • Пример: пользователь выбрал книгу Пушкина, значит можно рекомендовать ему другую книгу Пушкина или классическую литературу • Недостаток: система рекомендаций сильно зависит от домена и непереносима • На основе предпочтений • Рекомендации на основе оценок пользователей • Объекты рекомендации могут быть любыми • Можно реализовать общую систему, не зависимую от домена • Реализован в Mahout
  • 30. 30 Hadoop и Mahout Созыкин А.В. Предпочтение • Рекомендации в Mahout выдаются на основе предпочтений пользователей • Предпочтение в Mahout: • Пользователь (целое число) • Объект (целое число) • Предпочтение (число двойной точности) • Пример данных о предпочтениях для Mahout из проекта GroupLens (Университет Минесоты) – оценка пользователями фильмов: 196 242 3 881250949 186 302 3 891717742 22 377 1 878887116 244 51 2 880606923 user id | item id | rating | timestamp (Не используется в Mahout)
  • 31. 31 Hadoop и Mahout Созыкин А.В. Подходы к рекомендации • На основе пользователей: • Найти пользователей с похожими вкусами • Посмотреть, что нравится этим пользователям • Рекомендовать объекты в соответствии с предпочтениями похожих пользователей • Недостатки: подход плохо масштабируется, предпочтения быстро меняются • На основе объектов: • Найти объекты, похожие на те, которые понравились пользователю • Рекомендовать наиболее популярные из них • Преимущества: хорошо масштабируется, оценки объектов меняются редко. Рекомендации можно генерировать в автономном режиме (с использованием Hadoop)
  • 32. 32 Hadoop и Mahout Созыкин А.В. Рекомендации на основе пользователей public static void main(String[] args) throws Exception { DataModel model = new FileDataModel (new File("u.data")); UserSimilarity similarity = new PearsonCorrelationSimilarity (model); UserNeighborhood neighborhood = new NearestNUserNeighborhood (2, similarity, model); Recommender recommender = new GenericUserBasedRecommender ( model, neighborhood, similarity); List<RecommendedItem> recommendations = recommender.recommend(1, 1); for (RecommendedItem recommendation : recommendations) { System.out.println(recommendation); } } RecommendedItem [item:643, value:4.27682]
  • 33. 33 Hadoop и Mahout Созыкин А.В. Рекомендации на основе пользователей Источник: Sean Owen, Robin Anil, Ted Dunning, and Ellen Friedman. Mahout in Action
  • 34. 34 Hadoop и Mahout Созыкин А.В. Выбор похожих пользователей • Как определить, что вкусы пользователей похожи? • Мера «похожести» - число от -1 до 1. • 1 – вкусы пользователей совпадают • 0 – у пользователей нет общих вкусов • -1 – вкусы пользователей противоположны • Mahout использует несколько алгоритмов расчета «похожести»: • Коэффициент Пирсона • Евклидово расстояние • Корреляция Спирмена • Коэффициент Танимото • Логарифмическое правдоподобие
  • 35. 35 Hadoop и Mahout Созыкин А.В. «Соседние» пользователи Источник: Sean Owen, Robin Anil, Ted Dunning, and Ellen Friedman. Mahout in Action Фиксированное число соседей (NearestNUserNeighborhood ) Соседи в пределах границы (ThresholdUserNeighborhood)
  • 36. 36 Hadoop и Mahout Созыкин А.В. Выбор параметров • Какой тип «похожести» пользователей лучше? • Какой тип «соседства» лучше? • Критерии оценки: • Однозначного ответа нет • Результаты разные для разных данных • Проводите эксперименты с разными параметрами! Источник: Sean Owen, Robin Anil, Ted Dunning, and Ellen Friedman. Mahout in Action
  • 37. 37 Hadoop и Mahout Созыкин А.В. Рекомендации на основе объектов public static void main(String[] args) throws Exception { DataModel model = new FileDataModel (new File("u.data")); ItemSimilarity itemSimilarity = new LogLikelihoodSimilarity(dataModel); ItemBasedRecommender recommender = new GenericItemBasedRecommender(dataModel, itemSimilarity); List<RecommendedItem> recommendations = recommender.recommend(1, 1) for (RecommendedItem recommendation : recommendations) { System.out.println(recommendation); } } RecommendedItem [item:271, value:4.27682]
  • 38. 38 Hadoop и Mahout Созыкин А.В. Mahout и Hadoop Источник: Sean Owen, Robin Anil, Ted Dunning, and Ellen Friedman. Mahout in Action
  • 39. 39 Hadoop и Mahout Созыкин А.В. Mahout и Hadoop • Mahout может работать как отдельно, так и в кластере Hadoop • Запуск рекомендации Mahout в Hadoop выполняется с помощью класса RecommenderJob • Данные о предпочтениях должны быть записаны в HDFS • Полученные рекомендации записываются в HDFS • Рекомендации можно перенести в базу данных с помощью sqoop
  • 40. 40 Hadoop и Mahout Созыкин А.В. Пример запуска Mahout в Hadoop $ hadoop jar mahout-core-0.7-job.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -Dmapred.input.dir=input -Dmapred.output.dir=output --usersFile users_list.txt • Возможные параметры: • Dmapred.input.dir – каталог с данными о предпочтениях (в HDFS, может быть несколько файлов) • Dmapred.output.dir – каталог, куда записываются сгенерированные рекомендации (в HDFS) • --usersFile – файл с идентификаторами пользователей, для которых нужно сгенерировать рекомендации • --similarityClassname – имя класса, который реализует расчет «похожести» • --numRecommendations – количество рекомендаций на одного пользователя
  • 41. 41 Hadoop и Mahout Созыкин А.В. Итоги • MapReduce – программная модель для обработки больших объемов данных (BigData) • Hadoop – открытая реализация MapReduce • Экосистема Hadoop • Mahout – машинное обучение в Hadoop: • Рекомендации, классификация, кластеризация • Рекомендации в Mahout: • Предпочтения: пользователь, объект, оценка • Рекомендации на основе пользователей и на основе объектов • «Похожесть» пользователей и объектов • «Соседство» пользователей • Запуск Mahout RecommenderJob в Hadoop
  • 42. 42 Hadoop и Mahout Созыкин А.В. Вопросы? Контакты Андрей Созыкин avs@imm.uran.ru www.asozykin.ru