Користувач: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 та її додаткам (MAPREDUCE'10) була проведена в червні 2010 року з конференцією ЛСД і зустрічі в Чікаго, Іллінойс.
- Mapreduce для груп користувачів по всьому світу.
- Apache Hadoop
- Couchdb
- Disco Project
- Infinispan
- Riak
- ↑ Bosagh Zadeh, Reza; Carlsson, Gunnar. Dimension Independent Matrix Square Using MapReduce (PDF). Процитовано 12 липня 2014.
- ↑ 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=
(довідка) - ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑
{{cite conference}}
: Порожнє посилання на джерело (довідка)
[[Категорія:Паралельні обчислення]]