Родитель
							
								
									66eaf281a0
								
							
						
					
					
						Сommit
						7610e73e39
					
				| @ -0,0 +1,14 @@ | ||||
| 1	0	{2,3} | ||||
| 2	INF	{4,5,6,13} | ||||
| 3	INF	{} | ||||
| 4	INF	{7,8} | ||||
| 5	INF	{9,10} | ||||
| 6	INF	{7,9,11} | ||||
| 7	INF	{} | ||||
| 8	INF	{12,13} | ||||
| 9	INF	{} | ||||
| 10	INF	{} | ||||
| 11	INF	{} | ||||
| 12	INF	{} | ||||
| 13	INF	{14} | ||||
| 14	INF	{} | ||||
| @ -0,0 +1,8 @@ | ||||
| 1	0.125	{2,4} | ||||
| 2	0.125	{3,5,7} | ||||
| 3	0.125	{4,8} | ||||
| 4	0.125	{5} | ||||
| 5	0.125	{1} | ||||
| 6	0.125	{1,3} | ||||
| 7	0.125	{4} | ||||
| 8	0.125	{2,4,6} | ||||
											
												Двоичный файл не отображается.
											
										
									
								
											
												Двоичный файл не отображается.
											
										
									
								
											
												Двоичный файл не отображается.
											
										
									
								
											
												Двоичный файл не отображается.
											
										
									
								| @ -0,0 +1,153 @@ | ||||
|  # Лабораторная работа №2. Реализация алгоритма MapReduce | ||||
|   | ||||
|   | ||||
|  ## Цель | ||||
|   | ||||
|  * Научиться реализовывать алгоритмы в парадигме MapReduce | ||||
|   | ||||
| ## Выполнение | ||||
| 
 | ||||
| Защита лабораторной работы подразумевает наличие отчета, который должен содержать пункты задания, команды, которые вы вводите и ответы системы на них. | ||||
| При необходимости - комментарии по полученным результатам. | ||||
| 
 | ||||
| 
 | ||||
| ### Задачи | ||||
| 
 | ||||
| * Реализовать на языке Python алгоритм в парадигме MapReduce в соответствии с вариантом.  | ||||
| * Запустить разработанный алгоритм в среде Hadoop. | ||||
| * Убедиться в корректности полученных результатов. | ||||
| * Сформировать отчет о выполненной работе | ||||
| 
 | ||||
| 
 | ||||
| ### Варианты заданий | ||||
| 
 | ||||
| #### 1. Сравнение посещаемости сайтов в разное время | ||||
| 
 | ||||
| __Дано__: ежедневные журналы посещений сайтов за три дня: | ||||
| 
 | ||||
| * [День 1](assets/visits1.txt) | ||||
| * [День 2](assets/visits2.txt) | ||||
| * [День 3](assets/visits3.txt) | ||||
| 
 | ||||
| Формат данных: | ||||
| ``` | ||||
| 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. Определение минимального расстояния до каждой вершины | ||||
| 
 | ||||
| __Дано__: [структура графа](assets/graph.txt) в виде списка смежности: | ||||
| ``` | ||||
| 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 | ||||
| 
 | ||||
| __Дано__: [Структура графа сети](assets/pagerank.txt) в виде ключа, веса PageRank и смежных вершин | ||||
| ``` | ||||
| 1	0.200	{2,4} | ||||
| 2	0.200	{3,5} | ||||
| 3	0.200	{4} | ||||
| 4	0.200	{5} | ||||
| 5	0.200	{1,2,3} | ||||
| ``` | ||||
| 
 | ||||
| Параметры: | ||||
| ``` | ||||
| alpha = 0.1 | ||||
| N = 5 | ||||
| ``` | ||||
| 
 | ||||
| __Требуется__: рассчитать веса PageRank по прошествии 3 итераций. | ||||
| 
 | ||||
| ``` | ||||
| 1	0.080	{2,4} | ||||
| 2	0.170	{3,5} | ||||
| 3	0.170	{4} | ||||
| 4	0.290	{5} | ||||
| 5	0.290	{1,2,3} | ||||
| ``` | ||||
| Структура такая же, как и у входного файла. Все округления до 3 знаков после запятой. | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| #### 3. TF-IDF | ||||
| 
 | ||||
| __Дано__: [Текст трех произведений](assets/shakespear.txt). В начале каждой строки указан номер произведения. | ||||
| 
 | ||||
| 
 | ||||
| __Требуется__: рассчитать tf-idf вес каждого слова в каждом произведении. | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### Вопросы | ||||
| 
 | ||||
| 1. Какие этапы существуют у MapReduce задач? | ||||
| 2. В каком виде осуществляется передача данных между Map и Reduce? | ||||
| 3. Как определяется число mapper-процессов в MapReduce задаче?  | ||||
| 4. Как могут представляться графы в математическом виде? Как они обычно представляются в задачах MapReduce? | ||||
| 5. В чем заключается и как работает алгоритм PageRank? | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
											
												Двоичный файл не отображается.
											
										
									
								
					Загрузка…
					
					
				
		Ссылка в новой задаче
	
	 Mokhov Andrey
						Mokhov Andrey