MAPREDUCE
Д Е Х А Н О В А А Л Е К С А Н Д РА , 6 0 5 7 / 2
ВВЕДЕНИЕ
Требуется обработать очень много данных

Решение:
Супер мощный компьютер
Вычислительный кластер
ПРОБЛЕМЫ РАСПРЕДЕЛЁННЫХ СИСТЕМ
• Синхронизация при обмене данными и зависимость
процессов друг от друга
• Распределѐнное хранилище данных
• Пропускная способность канала обмена данными
• Отказ машин в кластере
MAPREDUCE
Модель распределённых вычислений
Состоит их двух шагов:
 Map
Master node разделяет входные данные на части
Выполняется некоторую функция для каждого значения в
входном наборе данных
Создаѐтся новый набор [ключ, значение]
 Reduce
Агрегирует значения для каждого ключа
Формирует решение задачи
ПРИМЕРЫ ЗАДАЧ
• Анализ логов посещения сайтов, сбор статистики
• Распределѐнная функция grep
• Построение поискового индекса
• Классификация и кластеризация
РАСПРЕДЕЛЁННАЯ ФАЙЛОВАЯ СИСТЕМА
• Distributed File System (DFS)
• Хранение входных данных
• Большие блоки данных, которые реплицируются
• Master node следит за расположением всех блоков
APACHE HADOOP
Свободная реализация
MapReduce на
языке Java
ПРИМЕР: ОБРАБОТКА ЛОГОВ
ПОСЕЩАЕМОСТИ
Лог №2

Лог №3

Mapper
Множество
[site, count]

Лог №1

Лог №4

Mapper

Mapper

Множество
[site, count]

Множество
[site, count]

[Site 1: 10, 11, 1]

[Site 2: 31, 1, 7]

Reducer

Reducer

[Site 1: 22]

[Site 2: 39]
ИЗБЫТОЧНЫЕ ДАННЫЕ
• Дополнительное средство Combiner
Агрегирует данные после этапа map
Уменьшает размер промежуточных данных
Вызывается произвольное количество раз
• Ручная агрегация в Mapper-е
ПРОБЛЕМЫ
• Тестирование
• Проблема отладки и профилирования
• Неравномерность распределения данных
SQL-ЗАПРОСЫ КАК MR-ЗАДАЧИ
• GROUP BY field: field – это ключ в фазе Map
• WHERE cond: cond вычисляется в фазе Map
• SUM/AVG: вычисляется как значение в Map, а
окончательно складывается в Reduce
• JOIN: команду JOIN можно сделать с помощью Map
или Reduce

• HAVING: фильтрация в окончательной фазе Reduce
APACHE HIVE И APACHE PIG
• Фреймворк на базе Apache Hadoop
Apache Hive
 Транслирует SQL запросы в Map Reduce jobs
Apache Pig
 SQL-подобные запросы к распределѐнным наборам
данных
HBASE
• Реализация парадигмы BigTable с ядром Apache
Hadoop
• Хранение данных на HDFS
• Map Reduce процессы для получения данных
ИТОГИ: ГДЕ СТОИТ ИСПОЛЬЗОВАТЬ?
MapReduce – некритична скорость получения
результата
 обработка логов
 построение статистических моделей
 построение индексов
Hbase – некритична небольшая потеря данных и не
обязательно гарантированное время ответа
 Хранение информации о пользователе для
отображения показа рекламы
СПАСИБО ЗА ВНИМАНИЕ

Map reduce

  • 1.
    MAPREDUCE Д Е ХА Н О В А А Л Е К С А Н Д РА , 6 0 5 7 / 2
  • 2.
    ВВЕДЕНИЕ Требуется обработать оченьмного данных Решение: Супер мощный компьютер Вычислительный кластер
  • 3.
    ПРОБЛЕМЫ РАСПРЕДЕЛЁННЫХ СИСТЕМ •Синхронизация при обмене данными и зависимость процессов друг от друга • Распределѐнное хранилище данных • Пропускная способность канала обмена данными • Отказ машин в кластере
  • 4.
    MAPREDUCE Модель распределённых вычислений Состоитих двух шагов:  Map Master node разделяет входные данные на части Выполняется некоторую функция для каждого значения в входном наборе данных Создаѐтся новый набор [ключ, значение]  Reduce Агрегирует значения для каждого ключа Формирует решение задачи
  • 5.
    ПРИМЕРЫ ЗАДАЧ • Анализлогов посещения сайтов, сбор статистики • Распределѐнная функция grep • Построение поискового индекса • Классификация и кластеризация
  • 6.
    РАСПРЕДЕЛЁННАЯ ФАЙЛОВАЯ СИСТЕМА •Distributed File System (DFS) • Хранение входных данных • Большие блоки данных, которые реплицируются • Master node следит за расположением всех блоков
  • 7.
  • 8.
    ПРИМЕР: ОБРАБОТКА ЛОГОВ ПОСЕЩАЕМОСТИ Лог№2 Лог №3 Mapper Множество [site, count] Лог №1 Лог №4 Mapper Mapper Множество [site, count] Множество [site, count] [Site 1: 10, 11, 1] [Site 2: 31, 1, 7] Reducer Reducer [Site 1: 22] [Site 2: 39]
  • 9.
    ИЗБЫТОЧНЫЕ ДАННЫЕ • Дополнительноесредство Combiner Агрегирует данные после этапа map Уменьшает размер промежуточных данных Вызывается произвольное количество раз • Ручная агрегация в Mapper-е
  • 10.
    ПРОБЛЕМЫ • Тестирование • Проблемаотладки и профилирования • Неравномерность распределения данных
  • 11.
    SQL-ЗАПРОСЫ КАК MR-ЗАДАЧИ •GROUP BY field: field – это ключ в фазе Map • WHERE cond: cond вычисляется в фазе Map • SUM/AVG: вычисляется как значение в Map, а окончательно складывается в Reduce • JOIN: команду JOIN можно сделать с помощью Map или Reduce • HAVING: фильтрация в окончательной фазе Reduce
  • 12.
    APACHE HIVE ИAPACHE PIG • Фреймворк на базе Apache Hadoop Apache Hive  Транслирует SQL запросы в Map Reduce jobs Apache Pig  SQL-подобные запросы к распределѐнным наборам данных
  • 13.
    HBASE • Реализация парадигмыBigTable с ядром Apache Hadoop • Хранение данных на HDFS • Map Reduce процессы для получения данных
  • 14.
    ИТОГИ: ГДЕ СТОИТИСПОЛЬЗОВАТЬ? MapReduce – некритична скорость получения результата  обработка логов  построение статистических моделей  построение индексов Hbase – некритична небольшая потеря данных и не обязательно гарантированное время ответа  Хранение информации о пользователе для отображения показа рекламы
  • 15.