Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.


14.05.2019

Bezpłatna konferencja OSEC...

Jako patron medialny serdecznie zapraszamy na bezpłatną konferencję OSEC Forum 2019, któa...
23.04.2019

Optymalizacja zużycia chmury

HPE GreenLake Hybrid Cloud
23.04.2019

Zarządzanie wydajnością

VMware vRealize Operations 7.5
19.04.2019

Technologie open source

SUSECON 2019
19.04.2019

Wyjątkowo małe

OKI seria C800
19.04.2019

Łatwy montaż

Rittal AX i KX
18.04.2019

Technologie wideo

Avaya IX Collaboration Unit
18.04.2019

Krótki rzut

Optoma W318STe i X318STe
18.04.2019

Do mobilnej pracy

Jabra Evolve 65e

Ekosystem Apache Hadoop

Data publikacji: 29-08-2018 Autor: Jarosław Sobel
RYS. 1. PODSTAWOWE OPERACJE...

W poprzednim artykule przedstawiliśmy zasadę działania systemu Apache Hadoop. Pora na zapoznanie się z narzędziami wspierającymi pracę z danymi składowanymi w Hadoopie.

Jak wiemy, MapReduce to jeden z podstawowych mechanizmów służących do równoległego przetwarzania dużych ilości danych w klastrach obliczeniowych. Został on opracowany przez inżynierów firmy Google, a następnie wykorzystany w pierwszej wersji systemu Hadoop do przetwarzania danych składowanych w ramach systemu HDFS. Zaletą mechanizmu MapReduce jest wykorzystanie (przetwarzanie) danych, które znajdują się lokalnie (w plikach lub w bazie danych). Dzięki takiemu podejściu eliminowana jest konieczność przesyłania dużej ilości informacji po sieci (co znacznie wydłuża czas przetwarzania oraz zwiększa ilość wymaganych zasobów).

W dużym uproszczeniu operacje wykonywane są w trzech podstawowych krokach (rys. 1):

 

  • faza map – węzeł główny (master node) rozdziela zadania pomiędzy poszczególnymi węzłami roboczymi (worker nodami). Podział i uruchomienie zadań zależy od liczby węzłów w klastrze oraz ilości danych, które mają być przetworzone. Węzeł główny musi zapewnić, by tylko jedna kopia danych (które w klastrze mogą być nadmiarowe) była tylko jeden raz przetworzona. Na danych lokalnych wykonywana jest funkcja map;
  • faza shuffle – węzły robocze „tasują” (przenoszą) dane wynikowe (zwrócone przez funkcję map) na inne węzły, ale tak, aby wyniki należące do jednego klucza (z jednej grupy) znalazły się na tym samym węźle;
  • faza reduce – węzły robocze przetwarzają wyniki operacji funkcji map, które są już odpowiednio pogrupowane (np.: po odpowiednim kluczu), a następnie zwracają dane do procesu głównego, który scala te dane w celu zaprezentowania wyniku głównego problemu.


Główną zaletą MapReduce jest możliwość podzielenia i zrównoleglenia zadań. Zakładając, że każda z operacji map jest niezależna od pozostałych, może być ona realizowana na osobnym serwerze.

Jako przykład przyjmijmy, że mamy pięć plików z danymi o temperaturach w dużych miastach Polski. Każdy plik zawiera dwie kolumny (klucz i wartość), które reprezentują nazwę miasta oraz temperaturę w danymi mieście zanotowaną w pewnej porze dnia (np.: Warszawa – 25°C). Pojedyncza para (klucz/wartość) znajduje się w pojedynczym wierszu. Takie uproszczenie zostało wprowadzone, aby zaprezentować działanie mechanizmu MapReduce. Możemy sobie wyobrazić, że w realnym świecie danych będzie zdecydowanie więcej (setki tysięcy plików, miliony wierszy), mogą mieć postać dokumentu (np. JSON) i niekoniecznie muszą być dobrze przygotowane (mogą np. zawierać luki lub informacje w różnych formatach lub jednostkach).

Przykładowe dane z jednego pliku:

Warszawa, 24 Kraków, 25 Katowice,
19 Warszawa, 25 Gdańsk, 28 Katowice, 21

Zadanie polega na znalezieniu największej występującej temperatury osobno dla każdego miasta. Informacja ma pochodzić ze wszystkich pięciu plików, gdyż dane o miastach mogą być dowolnie porozrzucane pomiędzy plikami. Najprostszym sposobem byłoby uruchomienie jednego zadania, które sekwencyjnie czytałoby dane z plików w celu znalezienia największej wartości dla podanego klucza (miasta). Takie rozwiązanie jest akceptowalne, jeśli plików mamy pięć, a w każdym z nich kilkaset lub co najwyżej kilka tysięcy wierszy. Jeśli jednak będziemy mówili o tysiącach plików i milionach rekordów, bez zrównoleglenia procesu wyszukiwania takie zadanie będzie wykonywane bardzo długo. Dodatkowo jeśli pliki będą porozrzucane po wielu węzłach, konieczne będzie ich skopiowanie do miejsca, w którym te dane będziemy przetwarzali (czyli będziemy mieli duży narzut związany z transferem sieciowym).

Przy zastosowaniu metody MapReduce problem ten można podzielić na pięć zadań (map). Każdy z mapperów przetworzy pojedynczy plik, a następnie zwróci największą temperaturę dla danego miasta. Przykładowy efekt działania mappera dla powyższego pliku będzie wyglądał następująco:

(Warszawa, 25) (Kraków, 25)
(Katowice, 21) (Gdańsk, 28)

[...]

Autor jest architektem zajmującym się projektowaniem i implementacją rozwiązań wirtualizacyjnych. Posiada certyfikacje firm: Citrix, VMware, Microsoft, NetApp i RedHat. Prelegent oraz autor bloga poświęconego technologii Citrix i wirtualizacji.

Artykuł pochodzi z miesięcznika: IT Professional

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"