Как Map/Reduce спас Яндекс.Статистику

Содержание

Слайд 2

Background

Взрывной рост объема данных, за 8 лет объем дневных данных вырос в

Background Взрывной рост объема данных, за 8 лет объем дневных данных вырос
2000 раз с 2ГБ до 4ТБ
Скорости процессоров, дисков и сети выросли не более чем в 10 раз
Единственных способ выжить – линейно масштабироваться, добавляя сервера
Осознали мы это не сразу …

Слайд 3

Рождение – 2001 год

Яндекс – start-up
На все 1 сервер
БД 400ГБ, 2ГБ данных

Рождение – 2001 год Яндекс – start-up На все 1 сервер БД
в день
4 проекта и 3 отчета
Все отчеты за день считаются за полчаса

Слайд 4

Архитектура v.1

Архитектура v.1

Слайд 5

Первые шаги

Рост данных, новые проекты и отчеты
Из-за падения базы бывает не успеваем

Первые шаги Рост данных, новые проекты и отчеты Из-за падения базы бывает
пересчитать отчеты в тот же день
Больше истории, которую нельзя терять
Появляются простые копии БД для надежности и ускорения расчетов

Слайд 6

Архитектура v.2

Архитектура v.2

Слайд 7

Активный рост

Рост данных и требований продолжается
Вынуждены использовать NAS как хранилище для БД,

Активный рост Рост данных и требований продолжается Вынуждены использовать NAS как хранилище
появляется новое узкое место – сеть между хранилищем и БД
Переходим на Oracle RAC

Слайд 8

Архитектура v.3

Архитектура v.3

Слайд 9

Старость

Сеть между NAS и БД постоянно перегружена
Тяжелые запросы очень плохо используют больше

Старость Сеть между NAS и БД постоянно перегружена Тяжелые запросы очень плохо
одной машины, но в состоянии «убить» весь кластер
Используем bonding и добавляем новые и головы в RAC, но предел уже очень близко

Слайд 10

Архитектура v.4

Архитектура v.4

Слайд 11

Смерть

Рост данных продолжился
Большие отчетам уже не хватает ресурсов, их расчет может занимать

Смерть Рост данных продолжился Большие отчетам уже не хватает ресурсов, их расчет
до нескольких суток
Нет ресурсов на пересчет отчетов
Головы RAC постоянно ждут друг друга
Наращивать уже нечего …

Слайд 12

Бабах

Бабах

Слайд 13

Что такое Map/Reduce?

Map/Reduce это технология, упрощающая написание приложений, для параллельной обработки больших объемов данных

Что такое Map/Reduce? Map/Reduce это технология, упрощающая написание приложений, для параллельной обработки
на кластерах состоящих из множества компьютеров.

Слайд 14

Что есть в Map/Reduce?

Линейное масштабирование по объему данных и скорости обработки
Хранилище неструктурированных

Что есть в Map/Reduce? Линейное масштабирование по объему данных и скорости обработки
данных
Простота модели – map и reduce задачи
Поддержка любых языков
Встроенная поддержка HA

Слайд 15

Чего нет в Map/Reduce?

Типов данных
Индексов
Партицирования
Проверок целостности

Чего нет в Map/Reduce? Типов данных Индексов Партицирования Проверок целостности

Слайд 16

Map/Reduce Схема Работы

Map/Reduce Схема Работы

Слайд 17

Что такое MapReduce?

Данные
С точки зрения пользователя данные - это таблицы.
Каждая запись в таблице

Что такое MapReduce? Данные С точки зрения пользователя данные - это таблицы.
состоит из полей «ключ» (key) и «значение» (value)
Таблица может быть отсортирована по ключу, но по умолчанию таблицы не сортированы.
Операции Над данными можно производить два типа операций: map и reduce.
Каждая из них преобразует одну или несколько таблиц в другую таблицу.
Map сводится к выполнению пользовательской функции map для каждой записи входной таблицы. Функция принимает на вход одну запись и генерирует произвольное количество выходных записей.
Reduce выполняет пользовательскую функцию reduce для каждого уникального ключа во входной таблице. Функция принимает на вход ключ и итератор, пробегающий по всем записям с этим ключом. Эта функция также может генерировать произвольное количество выходных записей.
Таблицы можно удалять, копировать, объединять и сортировать.

Слайд 18

Второе рождение

Добавляем Map/Reduce хранилище логов
Переносим все тяжелые отчеты в Map/Reduce
База только для

Второе рождение Добавляем Map/Reduce хранилище логов Переносим все тяжелые отчеты в Map/Reduce
быстрых запросов и запросов по «выборкам»

Слайд 19

Архитектура v.5

Архитектура v.5

Слайд 20

Резюме

Что бы выдержать рост данных необходимо выносить обработку и хранение больших данных

Резюме Что бы выдержать рост данных необходимо выносить обработку и хранение больших
в Map/Reduce
БД тоже нужна – для конкурентных точечных запросов, структурированных данных, проверок целостности
Готовы обрабатывать петабайты ☺
Имя файла: Как-Map/Reduce-спас-Яндекс.Статистику.pptx
Количество просмотров: 96
Количество скачиваний: 0