Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

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 вес каждого слова в каждом произведении.

Вопросы

  1. Какие этапы существуют у MapReduce задач?
  2. В каком виде осуществляется передача данных между Map и Reduce?
  3. Как определяется число mapper-процессов в MapReduce задаче?
  4. Как могут представляться графы в математическом виде? Как они обычно представляются в задачах MapReduce?
  5. В чем заключается и как работает алгоритм PageRank?