MapReduce to podstawowa koncepcja programowania, którą musisz opanować, aby zostać profesjonalnym inżynierem danych. Dostarcza rozwiązania dla rozproszonych systemów zarządzania plikami Big Data. Dlatego zrozumienie teoretycznego tła MapReduce sprawi, że nauka samej techniki będzie dla Ciebie łatwa.
Ale czym jest MapReduce i jak działa w rozproszonych systemach plików? Dowiesz się w tym poście.
Co to jest MapReduce?
MapReduce to model inżynierii danych stosowany do programów lub aplikacji przetwarzających logikę danych big data w ramach równoległych klastrów serwerów lub węzłów. Rozkłada logikę przetwarzania na kilka węzłów danych i agreguje wyniki na serwerze klient-serwer.
MapReduce zapewnia, że przetwarzanie jest szybkie, wydajne pod względem pamięci i niezawodne, niezależnie od rozmiaru danych.
Hadoop File System (HDFS), Google File System (GFS), Apache Kafka, GlusterFS i inne to przykłady rozproszonych systemów plików Big Data korzystających z algorytmu MapReduce.
Co to jest rozproszony system plików?
Rozproszony system plików (DFS) to metoda przechowywania w obliczeniach, która polega na dzieleniu dużych plików danych na mniejsze porcje i rozmieszczaniu ich na kilku serwerach w systemie. Umożliwia klientom z różnych źródeł zapisywanie i odczytywanie danych, udostępnianie i uruchamianie programowalnej logiki na danych — bezpośrednio z dowolnego miejsca.
Rozproszony system plików zazwyczaj składa się z serwera głównego (nazywanego również NameNode w Hadoop), klastry równoległe i kilka węzłów lub serwerów zawierających zreplikowane fragmenty danych, wszystko w jednym zbiorze danych środek. Jednak każdy klaster w rozproszonym systemie plików zawiera setki, a nawet tysiące takich węzłów.
Serwer główny automatycznie wykrywa zmiany w klastrach. Dzięki temu może przypisać role odpowiednio do każdego węzła.
Gdy serwer główny otrzyma plik danych, wysyła go do klastrów w systemie DFS. Te klastry dzielą i dystrybuują dane do każdego węzła w ich obrębie. Każdy węzeł następnie replikuje dane do tak zwanych bloków danych, tworząc łańcuch. W tym momencie każdy węzeł staje się serwerem porcji.
Związane z:Czym są centra danych i dlaczego są ważne?
Oprócz zarządzania dostępem do danych, serwer główny przechowuje adnotację metadanych do każdego pliku. W ten sposób wie, który węzeł obsługuje który plik w każdym klastrze.
Jak działa MapReduce w rozproszonych systemach plików?
Jak wspomniano wcześniej, duże zbiory danych są dostępne na kilku serwerach typu chunk w systemie plików DFS. Jednym ze sposobów wykonywania programowalnej logiki na tych plikach danych jest agregowanie ich w jeden. Następnie możesz je ściągnąć na jeden serwer, który teraz obsługuje logikę.
Chociaż jest to konwencjonalny sposób wyszukiwania danych, problem polega na tym, że dane ponownie stają się całością na pojedynczym serwerze. Tak więc pojedynczy serwer nadal będzie musiał zarządzać logiką kilku petabajtów danych jednocześnie. Niestety był to problem, który system zamierzał rozwiązać na początku. Więc w końcu nie jest to najlepsza praktyka.
Związane z:Jak wysyłać zapytania do wielu tabel bazy danych jednocześnie za pomocą złączeń SQL
Co więcej, taka agregacja na pojedynczym serwerze stwarza kilka zagrożeń dla wydajności. Mogą to być awarie serwera, słaba wydajność obliczeń, duże opóźnienia, wysokie zużycie pamięci i luki w zabezpieczeniach.
Ale innym sposobem na uruchomienie programowalnej logiki jest pozostawienie danych w porcjach wewnątrz każdego rozproszonego serwera. A następnie wstrzyknij funkcję logiczną do każdego serwera. Oznacza to, że każdy serwer porcji w klastrze obsługuje teraz swoje obliczenia. Dzięki takiemu podejściu nie ma potrzeby agregowania ani ściągania danych na pojedynczy serwer.
Czy istnieje koncepcja MapReduce w rozproszonym systemie plików danych. Zapewnia to, że pojedynczy serwer nie musi pobierać danych ze źródła. Zamiast tego rozprasza funkcję przetwarzania (MapReduce) na kilka węzłów fragmentów w osobnych klastry, więc każdy węzeł w każdym klastrze obsługuje logikę indywidualnie bez przeciążania pojedynczego serwer.
W konsekwencji kilka serwerów obsługuje jednocześnie logikę bitów danych. Taki rozkład pracy między serwerami zapewnia między innymi optymalną wydajność i wyższe bezpieczeństwo.
Jak jest przetwarzany wynik MapReduce w systemie plików DFS?
Oto jak działa całe przetwarzanie MapReduce w systemie plików DFS:
- Serwer główny otrzymuje zapytanie dotyczące danych big data (funkcja MapReduce) od klienta.
- Następnie wysyła to do każdego klastra, aby rozłożyć go na każdy węzeł w nim.
- Każdy węzeł przetwarza funkcję MapReduce i kumuluje jej wynik.
- Inny serwer zestawia wyniki z każdego węzła i odsyła je z powrotem do serwera głównego.
- Serwer główny następnie wysyła wynik jako odpowiedź do klienta.
W związku z tym jedynym zadaniem serwera głównego jest wysłanie klientowi łatwo obliczonego wyniku, nasłuchiwanie zmian i zarządzanie dostępem do danych. Nie wykonuje żadnych obliczeń. Dlatego większość aplikacji do przetwarzania w chmurze jest imponująco szybka pomimo ilości przetwarzanych danych.
Czym dokładnie jest mapa i redukcja w MapReduce?
MapReduce używa dwóch logiki programowania do przetwarzania dużych zbiorów danych w rozproszonym systemie zarządzania plikami (DFS). Są to mapa i funkcja redukcji.
ten mapa Funkcja wykonuje zadanie przetwarzania na każdym z węzłów danych w każdym klastrze rozproszonego systemu plików. ten redukować Następnie funkcja agreguje wyniki zwrócone przez każdy serwer porcji i przekazuje je do innego serwera w systemie DFS w celu agregacji wyników. Serwer odbierający wysyła to obliczenie do serwera głównego, który wysyła zwróconą wartość do serwera po stronie klienta.
Co się dzieje, gdy serwer Chunk przestaje działać?
Czasami serwery w rozproszonym systemie plików (DFS) mogą przestać działać. Można by pomyśleć, że to zepsuje cały system, ale tak nie jest.
W informatyce istnieje system, który zapobiega takiemu zbliżającemu się załamaniu. Nazywa się to tolerancją na błędy.
Związane z:Co to jest przetwarzanie w chmurze? Jak działa technologia chmury?
W związku z tym, nawet gdy serwer wyłączy się podczas przetwarzania danych, odporność na awarie gwarantuje, że serwer główny natychmiast go wykryje. A ponieważ w węzłach znajduje się replika porcji danych, serwer główny natychmiast przenosi zadanie przetwarzania na inny serwer. W ten sposób przestój serwera w systemie plików DFS nie wpływa na przetwarzanie danych.
MapReduce ułatwia przetwarzanie dużych zbiorów danych
MapReduce to podstawowy model, który ułatwia przetwarzanie w rozproszonych systemach plików. Ponieważ pozwala kilku węzłom na jednoczesne wykonywanie obliczeń, jest to szybka metoda wykorzystywana przez różnych gigantów technologicznych do rozwiązywania wielu problemów towarzyszących analizie dużych zbiorów danych.
Google, Amazon, IBM to m.in. przykłady firm, które stosują tę koncepcję. Na przykład Google stosuje koncepcję MapReduce, aby uzyskać wyniki zapytań podczas wyszukiwania Google.
Big data napędza wiele branż i ma wpływ na całe nasze życie. Ale czy jest to bardziej niebezpieczne czy pomocne?
Czytaj dalej
- Programowanie
- Programowanie
- Big Data
- Analiza danych
Idowu pasjonuje się każdą inteligentną technologią i produktywnością. W wolnych chwilach bawi się kodowaniem, a gdy się nudzi, przechodzi na szachownicę, ale od czasu do czasu uwielbia też oderwać się od rutyny. Jego pasja do pokazywania ludziom drogi do nowoczesnych technologii motywuje go do pisania więcej.
Zapisz się do naszego newslettera
Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Kliknij tutaj, aby zasubskrybować