Павел Клеменков [email protected]
DESCRIPTION
МГУ имени М.В. Ломоносова Объединенная компания «Афиши» и «Рамблера». Обзор современных подходов к обработке больших данных и их применение для построения рекомендательных систем. Павел Клеменков [email protected]. Цифровая вселенная. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/1.jpg)
Обзор современных подходов к обработке больших данных
и их применение для построения рекомендательных систем
Павел Клеменков[email protected]
МГУ имени М.В. ЛомоносоваОбъединенная компания «Афиши» и «Рамблера»
![Page 2: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/2.jpg)
По оценкам IDC размер “цифровой вселенной” в 2006 г. составлял 0.18 зеттабайт
А к 2011 г. должен был достигнуть 1.8 зеттабайт
Продемонстрировав десятикратный рост за 5 лет!
Цифровая вселенная
![Page 3: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/3.jpg)
Нью-Йоркская фондовая биржа генерирует около терабайта данных в день
Объем хранилищ Facebook каждый день увеличивается на 50 ТБ
Internet Archive уже хранит 2 ПБ данных и прирастает 20 ТБ в месяц
Эксперименты на БАК могут генерировать до 1 ПБ данных в секунду!
Источники данных
![Page 4: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/4.jpg)
“Большие данные” характеризуются объемом, разнообразием и скоростью, с
которой структурированные и неструкутрированные данные поступают по сетям передачи в процессоры и хранилища,
наряду с преобразованием этих данных в ценную для бизнеса информацию [Gartner]
Что такое “большие данные”?
![Page 5: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/5.jpg)
Volume (объем)
Variety (разнообразие)
Velocity (скорость)
Value (ценность)
4V
![Page 6: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/6.jpg)
Упор на дисковое хранение и индексацию Многопоточность, чтобы скрыть задержки Блокировки Журнализация транзакций Немасштабируемы
Архитектура большинства СУБД почти идентична System R (70-е годы):
The End of an Architectural Era
![Page 7: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/7.jpg)
Вертикальное масштабирование?
Бесконечно мощного сервера нет!Вертикальный рост конечен.
![Page 8: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/8.jpg)
Оптимизация запросов?Создание индексов?
Дополнительные операции.Деградация под нагрузкой
![Page 9: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/9.jpg)
Кэш на чтение?
Отказ от строгой консистентности.Усложнение клиентского ПО.
![Page 10: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/10.jpg)
Очередь операций вставки/обновления?
Размер очереди ограничен.Персистентность очереди.
![Page 11: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/11.jpg)
Денормализация схемы?
Избыточность данных.Аномалии.
![Page 12: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/12.jpg)
Горизонтальное масштабирование?
Отказ от нормализации.Отказ от join.Усложнение клиентского ПО.
![Page 13: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/13.jpg)
Отказ от строгой консистентности Уход от нормализации и внедрение
избыточности Потеря выразительности SQL и
моделирование части функций программно Усложнение клиентского ПО Сложность поддержания
работоспособности и отказоустойчивости
Промежуточные итоги
![Page 14: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/14.jpg)
NoSQL – это не бездумный отказ от реляционной модели!
“NoSQL” - название реляционной СУБД, не использующей SQL (1998 г.)
Бум NoSQL обусловлен ростом Интернет-индустрии
NoSQL
![Page 15: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/15.jpg)
Решение для задачи, а не наоборот Неограниченное горизонтальное
масштабирование Свободная схема или ее отсутствие Консистентность в жертву
производительности Простота развертывания и
администрирования Большинство программ императивные
Мантра NoSQL
![Page 16: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/16.jpg)
NoSQL и CAP
![Page 17: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/17.jpg)
Классификация NoSQL хранилищ по модели данных
Тип ПримерыХранилища ключ-значение Redis
ScalarisRiakTokyo Tyrant
Документные хранилища SimpleDBCouchDBMongoDB
Колоночные хранилища BigTableHbaseCassandra
Хранилища на графах Neo4j
![Page 18: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/18.jpg)
Простая модель данных – ассоциативный массив
Доступ к данным только по ключу Информация о структуре занчений не
сохраняется Обычно все данные хранятся в памяти с
возможностью сохранения на диск
Хранилища ключ-значение
![Page 19: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/19.jpg)
“Документ” – множество пар ключ-значение Документы могут быть вложены и
объединяться в коллекции Отсутствие схемы как в документе, так и в
коллекции Доступ к значениям по ключу или с
помощью языка запросов MapReduce
Документные хранилища
![Page 20: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/20.jpg)
Все изменения пишутся в конец файла При ошибках всегда можно восстановить
последнее состояние Запись не блокирует чтение
Б-деревья только на добавление
![Page 21: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/21.jpg)
Таблица – упорядоченный ассоциативный массив строк
Строка – ассоциативный массив семейств колонок
Семейство колонок – ассоциативный массив колонок с зафиксированными ключами
Колонка – кортеж <ключ, значение, временная метка>
Колоночные хранилища
![Page 22: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/22.jpg)
Колоночные хранилища
![Page 23: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/23.jpg)
Данные естественным образом представляются графом
Граф – это вершины с аттрибутами и ребра со свойствами
Доступ к вершинам и ребрам по индексам на аттрибутах и свойствах
Вычисления – обход графа по ребрам с заданными свойствами
Хранилища на графах
![Page 24: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/24.jpg)
Производительность. Вставки
![Page 25: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/25.jpg)
Производительность. Чтение
![Page 26: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/26.jpg)
Производительность. Обновления
![Page 27: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/27.jpg)
Производительность. Чтение
![Page 28: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/28.jpg)
Средняя производительность HDD ~100МБ/c
Прочесть 1 ТБ ~ 2.5 часа Прочесть 1 ТБ параллельно со 100 дисков
~ 2 минуты Произвольный доступ к диску медленный Последовательный доступ быстрый!
Почему MapReduce?
![Page 29: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/29.jpg)
MapReduce – модель распределенных вычислений (Google, 2004)
![Page 30: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/30.jpg)
2002 – поисковый движок Nutch 2003 – GFS (Google) 2004 – Nutch Distributed File System (NDFS) 2004 – MapReduce (Google) 2005 – Nutch MapReduce 2006 – Nutch → Hadoop 2008 – Yahoo! анонсирует Hadoop кластер 2008 – Apache Hadoop
История Hadoop
![Page 31: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/31.jpg)
Очень большие файлы (ГБ, ТБ, ПБ) Пакетный доступ к данным (пишем один
раз, читаем много) Аппаратные сбои неизбежны (репликация и
лог для метаданных) Локальность вычислений
Дизайн-принципы HDFS
![Page 32: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/32.jpg)
Чтение файла из HDFS
![Page 33: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/33.jpg)
Запись файла в HDFS
![Page 34: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/34.jpg)
Hadoop MapReduce
![Page 35: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/35.jpg)
Размер Число узлов
Число map
Число reduce
Степень репликации
Время
500 Гб 1406 8000 2600 1 59 сек1 ТБ 1460 8000 2700 1 62 сек100 ТБ 3452 190000 10000 2 173 мин1 ПБ 3658 80000 20000 2 975 мин
Сортировка записей по 100 байт http://sortbenchmark.orgМай 2009, Yahoo!
Производительность Hadoop
![Page 36: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/36.jpg)
Hive – распределенное хранилище(HDFS, HiveQL)
Pig – среда исполнения и язык программирования вычислений
Hbase – распределенное колоночное хранилище
ZooKeeper – высокодоступный координационный сервис
Экосистема Hadoop
![Page 37: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/37.jpg)
Функциональный ЯП Создавался Ericsson для управления
коммутационным оборудованием Легковесные процессы взаимодействуют в
соответствии с моделью акторов Порождение 200000 процессов ~ 10 мкс Отказоустойчивость оборудования –
99.9999999% (Ericsson)
О Erlang в двух словах
![Page 38: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/38.jpg)
Фреймворк MapReduce вычислений на больших данных (Nokia Research Center)
Ключевое свойство - простота: Нет планировщика Облегченный доступ к локальным ресурсам Независимый от ЯП протокол Упрощенная DDFS с децентрализацией
метаданных
Disco
![Page 39: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/39.jpg)
Подсчет слов в файле (1 Б)
Время (мс)Hadoop 12324PDisco 359ODisco 35
Disco vs Hadoop (задержки)
![Page 40: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/40.jpg)
Подсчет слов в английской Википедии
Disco vs Hadoop (производительность)
![Page 41: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/41.jpg)
DDFS vs HDFS (чтение)
![Page 42: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/42.jpg)
DDFS vs HDFS (запись)
![Page 43: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/43.jpg)
Анализ данных в реальном времени Высокочастотная торговля Поисковые системы реального времени Социальные сети Персонализация контента ...
В поисках “Hadoop реального времени”
![Page 44: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/44.jpg)
Предоставить простой интерфейс поточной обработки данных
Обеспечить горизонтальное масштабирование и высокую доступность кластера
Минимизировать задержки, используя только оперативную память узлов
Создать децентрализованное, симметричное решение без единой точки отказа
Yahoo! S4
![Page 45: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/45.jpg)
Вычисление – граф Вершины – вычислительные элементы (PE) Ребра – потоки событий PE – это актор с изолированным
состоянием
Yahoo! S4
![Page 46: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/46.jpg)
Событие – кортеж именованных значений События группируются по именам значений
в кортеже Группировка важна, потому что состояние
хранится в памяти узла и изолировано PE может или создать новый поток, или
опубликовать результат
События
![Page 47: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/47.jpg)
Событий/c Ошибка Скорость передачи (Мб/c)
2000 0.0% 2.63644 0.0% 4.97268 0.2% 9.710480 0.4% 14.012432 0.7% 16.614900 1.5% 19.916000 1.7% 21.420000 4.2% 26.7
Кластер из 8 узлов (4 процессора, 16 ГБ)
Производительность S4
![Page 48: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/48.jpg)
Storm (Twitter) – распределенная система вычислений в реальном времени
Первый публичный релиз через год после S4
Устраняет недостатки S4
Storm
![Page 49: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/49.jpg)
Два варианта использования: обработка потоков событий распределенный RPC
Прозрачное горизонтальное масштабирование
Гарантия обработки сообщений Отказоустойчивость, перераспределение
вычислений Независимость от ЯП
Особенности Storm
![Page 50: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/50.jpg)
Вычисление – топология (граф) Ребра – маршруты передачи данных Вершины:
трубы (spout) – генерируют данные молнии (bolt) – производят вычисления
Модель вычислений
![Page 51: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/51.jpg)
Событие – кортеж (как в S4) Кортеж полность обработан, если обработан
каждый кортеж дерева Избежать повторных вычислений можно с
помощью транзакций
![Page 52: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/52.jpg)
Задача рекомендательной системы – дать человеку направление до наиболее
интересных и полезных для него объектов в пространстве возможных вариантов
Рекомендательная система – программа, задачей которой является предсказать оценку,
которую пользователь поставит объекту, с которым он еще не встречался, на основании характеристик этого объекта и/или профиля
пользователя
Рекомендательные системы
![Page 53: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/53.jpg)
Классификация: Логистическая регрессия Байесовские классификаторы Случайный лес
Кластеризация K-Means Иерархическая кластеризация MinHash
Apache Mahout
![Page 54: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/54.jpg)
Понижение размерности: SVD PCA
Рекомендательные алгоритмы: Фильтрация по схожести пользователей Фильтрация по схожести объектов Slope One
И многие другие...
Apache Mahout
![Page 55: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/55.jpg)
sim (a ,b)=∑p∈P
(r a , p−r̄ a)(rb , p− r̄b)
√∑p∈P
(r a , p−r̄ a)2√∑
p∈P(rb , p−r̄ b)
2
pred (a , b)= r̄a+∑b∈N
sim (a , b)∗(r b , p− r̄ b)
∑b∈N
sim (a , b)
Фильтрация по схожести пользователей
![Page 56: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/56.jpg)
DataModel model = new FileDataModel(new File(“data.txt”));
UserSimilarity sim = new PearsonCorrelationSimilarity(model);
UserNeighborhood neighbor =new NearestNUserNeighborhood(3, sim,
model);
Recommender recommender = new
GenericUserBasedRecommender(model,neighbor, sim);
List<RecommendedItem> recommendations = recommender.recommend(1234, 10);
Фильтрация по схожести пользователей
![Page 57: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/57.jpg)
Сложность O(MN) На практике – O(M+N), т.к. векторы очень
разрежены Слишком медленный для Веба Предварительное вычисление матрицы
схожести сильно влияет на качество
Фильтрация по схожести пользователей
![Page 58: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/58.jpg)
sim (a , b)=∑u∈U
(r u ,a−r̄ u)(ru , b−r̄ u)
√∑u∈U
(r u , a−r̄ u)2√∑
u∈U(r u ,b−r̄ u)
2
pred (u , p)=∑
i∈ratedItems (u)sim (i , p)∗ru ,i
∑i∈ratedItems (a )
sim (i , p)
Фильтрация по схожести объектов
![Page 59: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/59.jpg)
DataModel model = new FileDataModel(new
File(“data.txt”));
ItemSimilarity sim = new
PearsonCorrelationSimilarity(model);
Recommender recommender = new GenericItemBasedRecommender(model,
sim);
List<RecommendedItem> recommendations = recommender.recommend(1234, 10);
Фильтрация по схожести объектов
![Page 60: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/60.jpg)
Сложность O(N2M) На практике O(NM), т.к. у большинства
пользователей мало оценок Более устойчив к предварительному
вычислению матрицы схожести Применяется Amazon (2003 г.)
Фильтрация по схожести объектов
![Page 61: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/61.jpg)
![Page 62: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/62.jpg)
![Page 63: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/63.jpg)
J=∣A∩B∣∣A∪B∣
Мера Жаккарда
![Page 64: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/64.jpg)
J=∣A∩B∣∣A∪B∣
Ο(min(∣A∣,∣B∣))
Ο(∣A∣+∣B∣)
Мера Жаккарда
![Page 65: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/65.jpg)
A={url1 , url2 ,… , urlk }
h : A → ℕ
hmin ( A )=min x∈ A (h ( x ))
J ( A , B )=P [hmin ( A )=hmin (B )]
MinHash
![Page 66: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/66.jpg)
Сигнатура множества вычисляется один раз
Размер сигнатуры не меняется
Одна хеш-функция имеет высокую
дисперсию, поэтому нужно использовать
среднее нескольких хеш-функций
Особенности MinHash
![Page 67: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/67.jpg)
Фильтрация логов во
временном окне
MAP
Кластеризация
![Page 68: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/68.jpg)
Фильтрация логов во
временном окне
Множество уникальных
URL
MAP
REDUCE
Кластеризация
![Page 69: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/69.jpg)
Фильтрация логов во
временном окне
Множество уникальных
URL
Подсчет значений
хеш-функций
MAP
REDUCE
Кластеризация
![Page 70: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/70.jpg)
Фильтрация логов во
временном окне
Множество уникальных
URL
Подсчет значений
хеш-функций
Вычисление минимума
MAP
REDUCE
Кластеризация
![Page 71: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/71.jpg)
Фильтрация логов во
временном окне
Множество уникальных
URL
Подсчет значений
хеш-функций
Вычисление минимума
Группировка минимумов (кластеры)
MAP
REDUCE
Кластеризация
![Page 72: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/72.jpg)
Фильтрация логов во
временном окне
Множество уникальных
URL
Подсчет значений
хеш-функций
Вычисление минимума
Группировка минимумов (кластеры)
Отсечение небольших кластеров
MAP
REDUCE
Кластеризация
![Page 73: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/73.jpg)
Фильтрация логов во
временном окне
MAP
Рекомендации
![Page 74: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/74.jpg)
Фильтрация логов во
временном окне
Множество уникальных
URL
MAP
REDUCE
Рекомендации
![Page 75: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/75.jpg)
Фильтрация логов во
временном окне
Множество уникальных
URL
Подсчет кликов по группам
MAP
REDUCE
Рекомендации
![Page 76: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/76.jpg)
Фильтрация логов во
временном окне
Множество уникальных
URL
Подсчет кликов по группам
Подсчет кликов по группам
MAP
REDUCE
Рекомендации
![Page 77: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/77.jpg)
Фильтрация логов во
временном окне
Множество уникальных
URL
Подсчет кликов по группам
Подсчет кликов по группам
Группировка новостей
MAP
REDUCE
Рекомендации
![Page 78: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/78.jpg)
Фильтрация логов во
временном окне
Множество уникальных
URL
Подсчет кликов по группам
Подсчет кликов по группам
Группировка новостей
Отсечение непопулярны
х новостей
MAP
REDUCE
Рекомендации
![Page 79: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/79.jpg)
Hadoop кластер из 8 узлов
Временное окно кластеризации – 5 суток (8
ГБ логов)
Время кластеризации – 7 минут
Временное окно рекомендаций – 5 часов
Время генерации рекомендаций – 3.5-4
минуты
Производительность
![Page 80: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/80.jpg)
Кузнецов Сергей Дмитриевич Добров Борис Викторович Когаловский Михаил Рувимович Калиниченко Леонид Андреевич
Благодарности
![Page 81: Павел Клеменков parser@cs.msu.su](https://reader035.vdocuments.site/reader035/viewer/2022062304/568143f7550346895db08573/html5/thumbnails/81.jpg)
Вопросы?