|
Шаблон MapReduce
|
|||
---|---|---|---|
#18+
Доброго времени суток, пытаюсь понять суть структуры шаблона MapReduce, прочитал достаточно материалов по этой технологии в частности и про Hadoop и как он устроен, также поэкспериментировал над MapReduce фреймворками от MapR и Hadoop, но хотелось бы все попробовать, как говорится пощупать руками :). От себя скажу что "теоретически" что есть MapReduce понял, коротко говоря это параллельный алгоритм для равномерного распределения(map) больших объемов данных и передача их в один конечный поток(reduce). Создал примитивный пример на Java, прошу строго не судить структуру программы, все делалось в спешке дабы понять суть алгоритма :) Main класс: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Основной класс реализации метода Map/Reduce Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164.
Смысл программы в том, что надо получить среднюю температуру городов по районам. Теперь сам вопрос :) правильно ли я реализовал структуру MapReduce, на выходе получаю идентичные значения что добавляй отдельный поток для каждого Map, что не добавляй. Если все это делается как то по другом буду весьма благодарен за пример или "тынц"на полезный ресурс. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2013, 13:45 |
|
Шаблон MapReduce
|
|||
---|---|---|---|
#18+
ZeD.ORAТеперь сам вопрос :) правильно ли я реализовал структуру MapReduceЭто Вам лучше подскажут в разделе Java . ZeD.ORAЕсли все это делается как то по другом буду весьма благодарен за пример или "тынц"на полезный ресурс. Спасибо. Пример (но для СУБД Caché) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2013, 14:35 |
|
Шаблон MapReduce
|
|||
---|---|---|---|
#18+
, Есть много тонкостей и возможностей для оптимизации. У вас, например, нет ни слова про combiner, aka локальный reduce шаг. ZeD.ORA//хотя пишут Map далее Reduce, но как я понимаю между Map и Reduce //существует невидимая операция которая собирает все входные данные для передачи в reduce Предлагаю прочитать настольную книгу Тома Вайта Hadoop: The Definitive Guide . Операция несколько сложнее, чем вы про нее написали. Промежуточный "результат" на Map-фазе партиционируется с целью распределения по reder-ам. На стороне reducer-а происходит сортировка и группировка по ключу. Благодаря тому, что все три фазы могут быть определны разработчиком, можно добиваться secindaey-sort'a, когда значения ключа отсортированы в порядке. В общем случае, порядок значений ключа не гарантируется. Предлагаю еще раз обратиться к матчасти :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2013, 12:26 |
|
|
Start [/forum/topic.php?fid=48&fpage=12&tid=1856947]: |
0ms |
get settings: |
12ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
56ms |
get topic data: |
19ms |
get forum data: |
1ms |
get page messages: |
194ms |
get tp. blocked users: |
1ms |
others: | 142ms |
total: | 433ms |
0 / 0 |