5.1 KiB
Лабораторная работа №2. Реализация алгоритма MapReduce
Цель
- Научиться реализовывать алгоритмы в парадигме MapReduce
Выполнение
Защита лабораторной работы подразумевает наличие отчета, который должен содержать пункты задания, команды, которые вы вводите и ответы системы на них. При необходимости - комментарии по полученным результатам.
Задачи
- Реализовать на языке Python алгоритм в парадигме MapReduce в соответствии с вариантом.
- Запустить разработанный алгоритм в среде Hadoop.
- Убедиться в корректности полученных результатов.
- Сформировать отчет о выполненной работе
Варианты заданий
1. Сравнение посещаемости сайтов в разное время
Дано: ежедневные журналы посещений сайтов за три дня:
Формат данных:
19:05:44 telegram.com 622
01:08:01 vk.com 935
22:28:55 mail.ru 154
17:15:16 mail.ru 100
Первый столбец - время посещения.
Второй столбец - сайт.
Третий столбец - продолжительность посещения в секундах.
Требуется: определить среднюю за три дня продолжительность посещения в первой и второй половине дня.
Алгоритм должен включать этап combiner
.
Первая половина дня: с 00:00:00 по 12:59:59
Вторая половина дня: с 13:00:00 по 23:59:59
Формат вывода:
telegram.com 510 234
vk.com 384 651
mail.ru 154 324
Первый столбец - сайт.
Второй столбец - средняя продожительность посещения в первой половине дня в секундах.
Третий столбец - средняя продожительность посещения во второй половине дня в секундах.
2. Определение минимального расстояния до каждой вершины
Дано: структура графа в виде списка смежности:
1 0 {2,3,4}
2 INF {5,6}
6 INF {}
Первый столбец - номер вершины.
Второй столбец - известное расстояние до данной вершины.
Третий столбец - список смежных вершин.
Требуется: рассчитать минимальное расстояние до каждой вершины используя метод поиска в ширину (BFS).
Формат вывода:
1 0 {2,3,4}
2 1 {5,6}
6 2 {}
Структура такая же, как и у входного файла.
Вес всех ребер равен единице. Обратить внимание, что данный алгоритм итеративный, т.е. требует нескольких запусков задачи MapReduce. Итоговый результат должен отображать расстояние до всех вершин графа.
3. PageRank
Дано: Структура графа сети в виде ключа, веса PageRank и смежных вершин
1 0.200 {2,4}
2 0.200 {3,5}
3 0.200 {4}
...
Параметры:
alpha = 0.1
Требуется: рассчитать веса PageRank по прошествии 3 итераций.
1 0.080 {2,4}
2 0.170 {3,5}
3 0.170 {4}
...
Структура такая же, как и у входного файла. Все округления до 3 знаков после запятой.
3. TF-IDF
Дано: Текст трех произведений. В начале каждой строки указан номер произведения.
Требуется: рассчитать tf-idf вес каждого слова в каждом произведении.
Вопросы
- Какие этапы существуют у MapReduce задач?
- В каком виде осуществляется передача данных между Map и Reduce?
- Как определяется число mapper-процессов в MapReduce задаче?
- Как могут представляться графы в математическом виде? Как они обычно представляются в задачах MapReduce?
- В чем заключается и как работает алгоритм PageRank?