Какво е MapReduce?
Програмата за програмиране MapReduce се използва за извършване на разпределена и паралелна обработка с големи масиви от данни в разпределена среда. Map and Reduce са двете различни задачи на програма за намаляване на карти. Отначало във фазата на картата данните се четат и от тях се генерират двойки ключ-стойност. Тогава тези двойки ключ-стойност се въвеждат в редуцираща задача, която агрегира данните от двойка ключ-стойност в по-малкия набор от стойности, произвеждащи крайния изход. По този начин, задача за намаляване винаги се изпълнява след завършване на задача с карта. Обработката на данни е много лесна за мащабиране на множество изчислителни възли.
В програмата има именно три етапа:
- Етап на карта
- Етап на разбъркване
- Намаляване на етап
Пример :
Проблем с Wordcount-
Да предположим, че по-долу са входните данни:
- Майк Джон Джейк
- Пол Пол Джейк
- Майк Пол Джон
1. Горните данни са разделени на три входни разделяния, както е посочено по-долу:
- Майк Джон Джейк
- Пол Пол Джейк
- Майк Пол Джон
2. След това тези данни се подават в следващата фаза, наречена фаза на картографиране.
И така, за първия ред (Mike Jon Jake) имаме 3 двойки ключ-стойност - Mike, 1; Йон, 1; Джейк, 1.
По-долу е резултатът във фазата на картографиране:
- Майк, 1
Джон, 1
Jake, 1 - Павел, 1
Павел, 1
Jake, 1 - Майк, 1
Павел, 1
Джон, 1
3. Горните данни след това се подават в следващата фаза, наречена фаза на сортиране и разбъркване.
В тази фаза данните се групират в уникални ключове и се сортират. По-долу е резултатът от фазата на сортиране и разбъркване:
- Jake, (1, 1)
- Джон, (1, 1)
- Майк, (1, 1)
- Павел, (1, 1, 1)
4. След това горните данни се подават в следващата фаза, наречена редуцираща фаза.
Тук всички ключови стойности се агрегират и се броят броят на 1s. По-долу е резултатът на фазата на намаляване:
- Джейк, 2
- Jon, 2
- Майк, 2
- Павел, 3
Предимства на MapReduce:
Тук научаваме някои важни предимства на рамката за програмиране MapReduce,
1. Мащабируемост
Hadoop като платформа, която е много мащабируема и до голяма степен се дължи на способността си да съхранява и разпространява големи набори от данни в много сървъри. Използваните тук сървъри са доста евтини и могат да работят паралелно. Мощността на обработка на системата може да бъде подобрена с добавяне на повече сървъри. Традиционните системи за управление на релационни бази данни или RDBMS не бяха в състояние да обработват мащабни масиви данни.
2. Гъвкавост
Моделът за програмиране Hadoop MapReduce предлага гъвкавост за обработка на структурни или неструктурирани данни от различни бизнес организации, които могат да се възползват от данните и да оперират с различни видове данни. По този начин те могат да генерират бизнес стойност от тези данни, които са смислени и полезни за бизнес организациите за анализ. Независимо от източника на данни, независимо дали става въпрос за социална медия, клик поток, имейл и др., Hadoop предлага поддръжка на много езици, използвани за обработка на данни. Заедно с всичко това програмирането на Hadoop MapReduce позволява много приложения като маркетингов анализ, препоръчителна система, склад на данни и откриване на измами.
3. Сигурност и удостоверяване
Ако някой външен човек получи достъп до всички данни на организацията и може да манипулира множество петабайта на данните, това може да нанесе много вреда по отношение на стопанската дейност, оперираща с бизнес организацията. Този риск е адресиран от модела за програмиране MapReduce чрез работа с hdfs и HBase, който позволява висока сигурност, позволяваща само на одобрения потребител да работи върху съхранените данни в системата.
4. Рентабилно решение
Такава система е много мащабируема и е много рентабилно решение за бизнес модел, който трябва да съхранява данни, които нарастват експоненциално в съответствие с изискванията за текущия ден. В случая на стари традиционни системи за управление на релационни бази данни не беше толкова лесно да се обработят данните, както при системата Hadoop по отношение на мащабируемостта. В такива случаи бизнесът беше принуден да намалява данните и да прилага допълнително класификация въз основа на предположения как определени данни могат да бъдат ценни за организацията и по този начин да премахнат необработените данни. Тук архитектурата на Hadoop scaleout с програмиране MapReduce идва на помощ.
5. Бързо
Разпределената файлова система Hadoop HDFS е ключова характеристика, използвана в Hadoop, която по същество внедрява система за картографиране за локализиране на данни в клъстер. Програмирането на MapReduce е инструментът, използван за обработка на данни и се намира също на същия сървър, позволяващ по-бърза обработка на данни. Hadoop MapReduce обработва големи обеми от данни, които са неструктурирани или полуструктурирани за по-малко време.
6. Прост модел на програмиране
Програмирането на MapReduce се основава на много прост модел на програмиране, който по същество позволява на програмистите да разработят MapReduce програма, която може да се справи с много повече задачи с по-голяма лекота и ефективност. Моделът за програмиране MapReduce е написан на езика на Java е много популярен и много лесен за научаване. За хората е лесно да научат Java програмиране и модел за обработка на данни, който отговаря на техните бизнес нужди.
7. Паралелна обработка
Моделът на програмиране разделя задачите по начин, който позволява паралелно изпълнение на независимата задача. Следователно тази паралелна обработка улеснява процесите да поемат всяка една от задачите, което помага да се стартира програмата за много по-малко време.
8. Наличност и устойчивост
Моделът за програмиране Hadoop MapReduce обработва данните, като изпраща данните до отделен възел, както и препраща същия набор от данни към другите възли, пребиваващи в мрежата. В резултат на това, в случай на повреда в определен възел, същото копие на данните все още е достъпно на другите възли, което може да се използва, когато се изисква, осигурявайки наличността на данни.
По този начин Hadoop е устойчив на вина. Това е уникална функционалност, предлагана в Hadoop MapReduce, че е в състояние бързо да разпознае грешката и да приложи бързо решение за автоматично решение за възстановяване.
Има много компании по целия свят, използващи намаляване на карти като facebook, yahoo и т.н.
Заключение - Какво е MapReduce
Намалението на карти има голяма възможност, когато става дума за голяма обработка на данни в сравнение с традиционните RDBMS системи. Много организации вече са осъзнали потенциала му и преминават към тази нова технология. Ясно е, че намаляването на картата има много дълго време в голяма платформа за обработка на данни.
Препоръчителни статии
Това е ръководство за Какво е MapReduce. Тук обсъдихме основната концепция, примери и предимства на MapReduce. Можете да разгледате и другите ни предложени статии, за да научите повече -
- Какво е JavaScript?
- Въпроси за интервю с MapReduce
- Какво е Python
- Как работи MapReduce
- Какво е Big data и Hadoop