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


06.12.2018

Niższe moce

UPS Eaton 9SX
03.12.2018

Monitory dla MŚP

AOC E1
29.11.2018

Wykrycie szkodliwego...

Sophos Intercept X Advanced
27.11.2018

Automatyzacja zabezpieczeń

Red Hat Ansible Automation
23.11.2018

Nieograniczona skalowalność

SUSE Enterprise Storage 5.5
20.11.2018

Dwa procesory Threadripper

AMD Ryzen Threadripper 2970WX i 2920X
16.11.2018

Dla biznesu i edukacji

Optoma 330USTN
13.11.2018

Superszybki dysk SSD

Patriot Evolver
09.11.2018

Ograniczenie kosztów

Canon imageRUNNER ADVANCE 525/615/715

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 © 2013 Presscom / Miesięcznik "IT Professional"