Презентация на тему Шаблоны проектирования Hadoop MapReduce

Презентация на тему Шаблоны проектирования Hadoop MapReduce, предмет презентации: Шаблоны, картинки для презентаций. Этот материал содержит 32 слайдов. Красочные слайды и илюстрации помогут Вам заинтересовать свою аудиторию. Для просмотра воспользуйтесь проигрывателем, если материал оказался полезным для Вас - поделитесь им с друзьями с помощью социальных кнопок и добавьте наш сайт презентаций ThePresentation.ru в закладки!

Слайды и текст этой презентации

Слайд 1
Текст слайда:


Шаблоны проектирования Hadoop MapReduce

Сильвестров Алексей


26 апреля 2011 г


Слайд 2
Текст слайда:

Введение
In-mapper combining
“Pairs” and “stripes”
Order inversion
Value-to-key conversion
Базы данных: map-side join, reduce-side join




План доклада


Слайд 3
Текст слайда:

Архитектура MapReduce


Слайд 4
Текст слайда:

Задача

Подсчитать количество вхождений всех слов в наборе документов {d1,d2,…}


Слайд 5
Текст слайда:

Типичное решение


Слайд 6
Текст слайда:

In-mapper combining


Слайд 7
Текст слайда:

In-mapper combining

Недостатки паттерна:
Угроза масштабируемости: надо хранить результаты промежуточных вычислений, пока mapper не обработает все поданные на него данные.
Наличие внутренних состояний внутри mapper создает возможность появления ошибок связанных с порядком выполнения.

Одно из решений 1): делать emit после каждых n обработанных пар <ключ, значение>


Слайд 8
Текст слайда:

In-mapper combining

Combiner в MapReduce - оптимизационная опция, поэтому корректность выполнения алгоритма не должна от него зависеть.
Reducer должен принимать на вход пары <ключ,значение> того же типа что и пары испускаемые mapper’ом.


Слайд 9
Текст слайда:

Задача

Рассмотрим пример, в котором обыграны два этих правила.
Есть много .log документов, хранящих данные вида . Нужно посчитать среднее время пребывания на сайте.
Учесть правило:



Слайд 10
Текст слайда:

Простое решение


Слайд 11
Текст слайда:

Неправильное решение


Слайд 12
Текст слайда:

Неправильное решение


Слайд 13
Текст слайда:

Правильное решение


Слайд 14
Текст слайда:

Еще одно решение


Слайд 15
Текст слайда:

“Pairs” и “stripes”

Учебник Python 3 покупают вместе с K&R, но никогда наоборот. Учебник SICP не покупают вместе с “Мечты роботов” Азимова.
Нужно построить матрицу совместных покупок с помощью паттерна pairs или с помощью паттерна stripes.


Слайд 16
Текст слайда:

“Pairs” и “stripes”

Pairs:


Слайд 17
Текст слайда:

“Pairs” и “stripes”

Stripes:


Слайд 18
Текст слайда:

“Pairs” и “stripes”

Очевидно, что “pairs” генерирует намного больше пар <ключ,значение>, чем “stripes”.
Реализация “stripes” компактна, но сложна.
Реализация “stripes” требует временного хранения данных.
Combiner в “stripes” имеет больше возможностей для выполнения локальной агрегации.


Слайд 19
Текст слайда:

“Pairs” и “stripes”


Слайд 20
Текст слайда:

“Pairs” и “stripes”


Слайд 21
Текст слайда:

Order inversion

Вернемся к построению матрицы совместных покупок: некоторые товары покупают гораздо чаще других.
Следовательно абсолютные значения нерепрезентативны, поэтому перейдем к частотам:





Слайд 22
Текст слайда:

Order inversion

Возникает проблема: как подсчитать знаменатель?
С помощью шаблона “Stripes”: в reducer попадают пары , поэтому можно вычислять знаменатель на месте.


Слайд 23
Текст слайда:

Order inversion

В случае Pairs нужно проявить изобретательность: идея этого шаблона состоит в сохранении масштабируемости.
Заведем специальные key-value: <(wi,*),1> для подсчета знаменателя.
В reducer введем свой порядок сортировки, чтобы специальные пары суммировались до вычисления частот.
Определим свой partitioner который будет отправлять пары с одинаковым первым словом на один reducer.
Для правильного порядка сортировки(.2) заведем состояния в reducer.


Слайд 24
Текст слайда:

Order inversion

Пример:


Слайд 25
Текст слайда:

Value-to-key conversion

Рассмотрим пример: m сенсоров считывают некие данные, t – timestamp, Rx – данные.






Выделим работу одного сенсора с помощью Map:


Т.е. Reducer получит данные с конкретного сенсора, не отсортированные по timestamp’ам.



Слайд 26
Текст слайда:

Value-to-key conversion

Очевидное решение: буферизовать данные и затем сортировать их по timestamp – потенциальная угроза масштабируемости.

Value-to-key conversion : в паре <ключ, значение> часть значения переносится в ключ, проблемы сортировки возлагаются на MapReduce:


Таким образом на reduce будут попадать отсортированные по обоим параметрам данные:


Слайд 27
Текст слайда:

Базы данных: реляционные соединения

Hadoop часто используется для хранения данных в форме реляционных баз данных.
Рассмотрим три вида объединения отношений S и T: один к одному, один ко многим, много ко многим.




k – ключ, s – идентификатор кортежа, S и T – остальные атрибуты.


Слайд 28
Текст слайда:

Reduce-side join. Один к одному

Идея Reduce-side join состоит в разбиении данных по ключу на map и объединении на Reduce.
В качестве примера рассмотрим объединение один к одному:





В map стадии k используется как временный ключ, остальное содержимое кортежа - как значение.


Слайд 29
Текст слайда:

Reduce-side join. Один ко многим

Рассмотрим объединение один ко многим: пусть в S k-уникальный ключ, в T – нет.
Простейший выход- хранить оба отношения в памяти, вытаскивать кортеж из S и объединять с каждым кортежем из T - является угрозой масштабируемости.
Здесь понадобится secondary sort и вытекающий из него value-to-key conversion - в mapper создается составной ключ:




Когда бы reducer не получил пару <(k, s), S> гарантируется что ее кортеж S будет сохранен в памяти до появления T кортежа, после чего произойдет объединение.


Слайд 30
Текст слайда:

Reduce-side join. Много ко многим

Много ко многим: в S и T k не являются уникальными ключами:









Для объединения каждого с каждым также используется Value-to-key conversion.


Слайд 31
Текст слайда:

Map-side join

Идея Map-side join состоит в объединении данных на map и и отправке на Reduce.
Пример: S и T разделены на 10 файлов(5 для S и 5 для T), в каждом файле кортежи отсортированы по первичному ключу.
Чтобы выполнить объединение, нужно параллельно обработать файлы S1 и T1, S2 и T2 и т.д. на map-стадии.
Map-side join более эффективен чем Reduce-side, т.к. не требуется передача данных по сети на Reduce узлы.
Однако Reduce-side более прост и потому популярен.


Слайд 32
Текст слайда:

Вопросы?


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика