Користувач:Cthuj/MapReduce (1)

MapReduce - модель розподілених обчислень, представлена компанією Google, яка використовується для паралельних обчислень над дуже великими (кілька петабайт) наборами даних в комп'ютерних кластерах.

Завдання програми складається з карти() процедура (спосіб), який виконує функції фільтрації і сортування (наприклад, сортування студентів по імені в черзі, одна черга для кожного імені) і Reduce() (зменшення) метод, який виконує операцію додавання (наприклад, підрахунок кількості студентів в кожній черзі, поступаючись назва частотах). У "mapreduce система" (також званої "інфраструктури" або "рамки") організує обробку на сортувальних розподіленого сервера, виконавши різні завдання паралельно, управління зв'язку і передачі даних між різними частинами системи, і забезпечення надмірності і відмовостійкості.

Огляд ред.

MapReduce - це фреймворк для обчислення деяких наборів розподілених завдань з використанням великої кількості комп'ютерів (званих «нодами»), що утворюють кластер. Оброблятися можуть дані, які зберігаються або в файловій системі (неструктуровано) або в базі даних (структуровано).

  • "Map" крок: кожен робочий вузол застосовує функцію "map()" для локальних даних, і записує вихідні дані на тимчасове зберігання. Головний вузол гарантує, що тільки одна копія надлишкових вхідних даних обробляється.
  • "Shuffle" крок: робочі вузли перерозподіляють дані, що засновані на вихідних ключах (виробляються функцією "map()"), таким чином, що всі дані, що належать до одного ключа знаходиться в тому ж робочому вузлі.
  • "Reduce" крок: робочі вузли тепер паралельно обробляють кожну групу вихідних даних за ключем.

Розподіл і надійність ред.

MapReduce забезпечує надійність за рахунок парцеляції ряду операцій по набору даних для кожного вузла в мережі. Кожен вузол періодично звітує з завершеними роботи і оновленням статусу. Якщо вузол не відповідає довше ніж цей інтервал, головний вузол (за аналогією з головним сервером в файлової системі Google) записує вузол, як мертвий, і посилає призначену для цього вузла роботу на інші вузли. Окремі операції використовують атомарні операції для іменування файлів виходів в якості перевірки, щоб переконатися, що не запущені конфліктні паралельні теми. Коли файли перейменовуються, можна скопіювати їх з іншим ім'ям на додаток до імені завдання (з урахуванням побічних ефектів).

Використання ред.

MapReduce корисний в широкому спектрі додатків, в тому числі в розподіленому пошуку на основі шаблонів, розподіленого сортування, веб-посилання, сингулярної декомпозиції,[1] веб-доступу до журналу статистики, інвертованого індексу будівництва, документу кластеризації, машинного навчання,[2] і статистичного машинного перекладу. Крім того, в MapReduce модель була адаптована для декількох обчислювальних середовищ, таких як Multi-Core і багатоядерних систем[3][4][5] GRID-станцій,[6] волонтерських обчислювальних середовищ[7] динамічних хмарних середовищ,[8] і мобільних середовищ.[9]

Обмежені рамки програмування ред.

Завдання MapReduce повинні бути написані у вигляді програм ациклічного потоку, тобто без зіставлення з подальшим редуктор без громадянства, які виконуються за допомогою пакетного планувальника завдань. Ця парадигма робить повторні запити наборів даних складними і накладає обмеження, які є суттєвими в таких областях, як машинне навчання, де повторення алгоритмів, які повертають один робочий набір кілька разів - це норма.[10]

Конференції і групи користувачів ред.

Дивіться також ред.

Застосування MapReduce ред.

Посилання ред.

  1. Bosagh Zadeh, Reza; Carlsson, Gunnar. Dimension Independent Matrix Square Using MapReduce (PDF). Процитовано 12 July 2014.
  2. Ng, Andrew Y.; Bradski, Gary; Chu, Cheng-Tao; Olukotun, Kunle; Kim, Sang Kyun; Lin, Yi-An; Yu, YuanYuan. Map-Reduce for Machine Learning on Multicore. NIPS 2006. {{cite web}}: Cite має пустий невідомий параметр: |1= (довідка)
  3. Ranger, C.; Raghuraman, R.; Penmetsa, A.; Bradski, G.; Kozyrakis, C. (2007). Evaluating MapReduce for Multi-core and Multiprocessor Systems. 2007 IEEE 13th International Symposium on High Performance Computer Architecture. с. 13. doi:10.1109/HPCA.2007.346181. ISBN 1-4244-0804-0.
  4. He, B.; Fang, W.; Luo, Q.; Govindaraju, N. K.; Wang, T. (2008). Mars: a MapReduce framework on graphics processors. Proceedings of the 17th international conference on Parallel architectures and compilation techniques - PACT '08 (PDF). с. 260. doi:10.1145/1454115.1454152. ISBN 9781605582825.
  5. Chen, R.; Chen, H.; Zang, B. (2010). Tiled-MapReduce: optimizing resource usages of data-parallel applications on multicore with tiling. Proceedings of the 19th international conference on Parallel architectures and compilation techniques - PACT '10. с. 523. doi:10.1145/1854273.1854337. ISBN 9781450301787.
  6. Tang, B.; Moca, M.; Chevalier, S.; He, H.; Fedak, G. (2010). Towards MapReduce for Desktop Grid Computing. 2010 International Conference on P2P, Parallel, Grid, Cloud and Internet Computing (PDF). с. 193. doi:10.1109/3PGCIC.2010.33. ISBN 978-1-4244-8538-3.
  7. Lin, H.; Ma, X.; Archuleta, J.; Feng, W. C.; Gardner, M.; Zhang, Z. (2010). MOON: MapReduce On Opportunistic eNvironments. Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing - HPDC '10 (PDF). с. 95. doi:10.1145/1851476.1851489. ISBN 9781605589428.
  8. Marozzo, F.; Talia, D.; Trunfio, P. (2012). P2P-MapReduce: Parallel data processing in dynamic Cloud environments (PDF). Journal of Computer and System Sciences. Т. 78, № 5. с. 1382. doi:10.1016/j.jcss.2011.12.021.
  9. Dou, A.; Kalogeraki, V.; Gunopulos, D.; Mielikainen, T.; Tuulos, V. H. (2010). Misco: a MapReduce framework for mobile systems. Proceedings of the 3rd International Conference on PErvasive Technologies Related to Assistive Environments - PETRA '10. с. 1. doi:10.1145/1839294.1839332. ISBN 9781450300711.
  10. {{cite conference}}: Порожнє посилання на джерело (довідка)

[[Категорія:Паралельні обчислення]]