MapReduce е основна концепция за програмиране, която трябва да овладеете, за да станете професионален инженер на данни. Той предоставя решения за разпределени системи за управление на файлове с големи данни. Следователно разбирането на теоретичната основа на MapReduce ще направи изучаването на самата техника лесно за вас.

Но какво е MapReduce и как работи в разпределени файлови системи? Ще разберете в тази публикация.

Какво е MapReduce?

MapReduce е модел за инженерство на данни, приложен към програми или приложения, които обработват логиката на големи данни в паралелни клъстери от сървъри или възли. Той разпределя логиката на обработка между няколко възли за данни и обобщава резултатите в клиент-сървър.

MapReduce гарантира, че обработката е бърза, ефективна за памет и надеждна, независимо от размера на данните.

Hadoop File System (HDFS), Google File System (GFS), Apache Kafka, GlusterFS и други са примери за разпределени файлови системи с големи данни, които използват алгоритъма MapReduce.

Какво е разпределена файлова система?

instagram viewer

Разпределената файлова система (DFS) е метод за съхранение в изчисленията, който включва разделяне на големи файлове с данни на по-малки парчета и разпространението им върху няколко сървъра в системата. Той позволява на клиенти от различни източници да пишат и четат данни, да споделят и изпълняват програмируема логика върху данни - направо отвсякъде.

Разпределената файлова система обикновено се състои от основния сървър (наричан още NameNode в Hadoop), паралелни клъстери и няколко възли или сървъри, съдържащи репликирани парчета данни, всички в данни център. Въпреки това, всеки клъстер в разпределената файлова система съдържа стотици до хиляди от тези възли.

Основният сървър автоматично открива промените в клъстерите. Така че може да присвоява роли съответно на всеки възел.

Когато основният сървър получи файл с данни, той го изпраща до клъстерите в DFS. Тези клъстери нарязват и разпределят данните във всеки възел в тях. След това всеки възел репликира данните в така наречените блокове от данни, за да образува верига. В този момент всеки възел се превръща в сървър на парчета.

Свързани:Какво представляват центровете за данни и защо са важни?

В допълнение към управлението на достъпа до данните, основният сървър държи анотация на метаданни за всеки файл. По този начин той знае кой възел обработва кой файл във всеки клъстер.

Как работи MapReduce в разпределени файлови системи?

Както бе споменато по-рано, големите данни са налични в няколко сървъра на парчета в DFS. Един от начините за изпълнение на програмируема логика върху тези файлове с данни е да ги обедините в един. След това можете да ги изтеглите в един сървър, който сега се справя с логиката.

Въпреки че това е конвенционален начин за запитване на данни, проблемът е, че данните отново се превръщат в едно цяло в единния сървър. Така че един сървър все пак ще трябва да управлява логиката на няколко петабайта данни наведнъж. За съжаление, това беше проблемът, който системата възнамеряваше да реши в началото. Така че в крайна сметка това не е най-добрата практика.

Свързани:Как да заявявате множество таблици на база данни наведнъж с SQL присъединявания

Освен това, такова обединяване в един сървър крие няколко рискове за производителността. Те могат да варират от срив на сървъра, лоша ефективност на изчисленията, висока латентност, висока консумация на памет и уязвимости до повече.

Но друг начин за изпълнение на програмируемата логика е да оставите данните на парчета във всеки разпределен сървър. И след това инжектирайте логическата функция във всеки сървър. Това означава, че всеки чанк сървър в клъстер вече обработва изчисленията си. Използването на този подход означава, че няма нужда от агрегиране или изтегляне на данни в един сървър.

Че съществува концепцията MapReduce в разпределена файлова система с данни. Той гарантира, че един сървър няма нужда да изтегля данни от източника. Вместо това, той разпръсква функцията за обработка (MapReduce) в няколко възела на парчета поотделно клъстери, така че всеки възел във всеки клъстер обработва логиката поотделно, без да претоварва нито един сървър.

Следователно няколко сървъра обработват логиката на битове данни едновременно. Това разпределение на труда между сървърите води до оптимална производителност и по-висока сигурност, наред с други предимства.

Как се обработва резултатът от MapReduce в DFS?

Ето как работи цялата обработка на MapReduce в DFS:

  • Основният сървър получава заявка за големи данни (функция MapReduce) от клиента.
  • След това изпраща това до всеки клъстер, за да го разпространи във всеки възел в него.
  • Всеки възел обработва функцията MapReduce и натрупва нейния резултат.
  • Друг сървър събира резултатите от всеки възел и ги изпраща обратно на основния сървър.
  • След това основният сървър изпраща резултата като отговор на клиента.

По този начин единствената задача на основния сървър е да изпраща лесно изчислен резултат на клиента, да слуша промените и да управлява достъпа до данните. Не извършва никакви изчисления. Ето защо повечето приложения за изчисления в облак са впечатляващо бързи въпреки количеството данни, които обработват.

Какво точно представлява картата и редуцирането в MapReduce?

MapReduce използва две логики за програмиране за обработка на големи данни в разпределена система за управление на файлове (DFS). Това са функция за карта и намаляване.

В карта функцията извършва работата по обработка на всеки от възлите на данни във всеки клъстер на разпределена файлова система. В намаляват функцията след това обобщава резултатите, върнати от всеки сървър на парчета, и ги предава на друг сървър в рамките на DFS за агрегиране на резултатите. Получаващият сървър изпраща това изчисление на основния сървър, който публикува върнатата стойност на сървъра от страна на клиента.

Какво се случва, когато чанк сървър се повреди?

Сървърите в рамките на разпределена файлова система (DFS) може понякога да престоят. Може да си мислите, че това ще счупи цялата система, но не е така.

Има система в компютрите, която предотвратява такава предстояща повреда. Нарича се отказоустойчивост.

Свързани:Какво представлява облачните изчисления? Как работи облачната технология?

Следователно, дори когато сървърът се изключи по време на обработка на данни, толерантността към грешки гарантира, че основният сървър го открива незабавно. И тъй като има реплика на парчетата данни в възлите, основният сървър незабавно прехвърля задачата за обработка на друг сървър. По този начин прекъсването на сървъра в рамките на DFS не засяга обработката на данни.

MapReduce улеснява обработката на големи данни

MapReduce е основен модел, който улеснява изчисленията в разпределени файлови системи. Тъй като позволява на няколко възли да изпълняват изчисление едновременно, това е бърз метод, използван от различни технологични гиганти за решаване на много от проблемите, които съпътстват анализа на големи данни.

Google, Amazon, IBM, наред с други, са примери за компании, които използват тази концепция. Google, например, прилага концепцията MapReduce, за да изведе резултати от заявка по време на търсене с Google.

Какво представляват големите данни, защо са важни и колко опасни са?

Големите данни захранват много индустрии и оказват влияние върху целия ни живот. Но дали е по-опасно или полезно?

Прочетете Следващото

Дялтуителектронна поща
Свързани теми
  • Програмиране
  • Програмиране
  • Голяма информация
  • Анализ на данни
За автора
Идову Омисола (публикувани 133 статии)

Idowu е страстен за всичко, което е интелигентна технология и производителност. В свободното си време той играе наоколо с кодирането и преминава към шахматната дъска, когато му е скучно, но също така обича да се откъсва от рутината от време на време. Страстта му да показва на хората пътя около съвременните технологии го мотивира да пише повече.

Още от Idowu Omisola

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате