Programista nie musi przejmować się równomiernym rozdzielaniem pracy pomiędzy węzły oraz implementacją mechanizmów zabezpieczających na wypadek awarii węzła.
Komputery w klastrze opartym na Apache Hadoop mają dwie funkcje:
• przechowywanie danych na węzłach klastra. Duże pliki z danymi dzielone są na części i rozprzestrzeniane między węzłami klastra. Dodatkowo Apache Hadoop oferuje replikację danych, w przypadku gdyby wystąpiła awaria któregoś z węzłów. Pliki danych dzielone są na części o określonej w konfiguracji ilości bajtów. W przypadku, gdy podział pliku nie następuje na końcu linii, następuje automatyczne dopełnienie do pełnej linii. Jest to bardzo przydatna funkcjonalność, ze względu na to, że w programach analizujących dane, wczytywane są one zazwyczaj linia po linii,
• wspólne wykonywanie obliczeń. W przypadku awarii węzła klastra, przydzielone mu dane do obliczenia są rozdysponowywane wśród reszty węzłów.
2.2.2 Podział i przechowywanie plików
[12][13] W Apache Hadoop pliki są przechowywane w rozproszonym systemie plików HDFS (Hadoop Distributed File System), którego węzły mogą pełnić jedną z dwóch ról:
• NameNode węzeł zarządzający systemem plików i węzłami podrzędiymi,
• DataNode • węzeł podrzędny, pełniący rolę kontenera danych.
Węzeł, który pełni rolę NameNode do poprawnej pracy musi znać całe drzewo plików oraz wszystkie węzły podrzędne. Użytkownik manipulujący danymi z HDFS musi komunikować się z węzłem NameNode, ponieważ to on zaiządza plikami, dzieli je między węzłami i łączy. Dzięki temu, że użytkownik komunikuje się tylko z jednym węzłem, cały rozproszony system jest dla użytkownika przeźroczysty. W celu eliminacji wąskich gardeł, czyli elementów, które w przypadku awarii paraliżują cały system, możliwe jest skonfigurowanie tzw. secondary NameNode, który w wypadku awarii węzła zarządzającego systemem plików przejmuje jego rolę.
Węzeł, który pełni rolę DataNode jest odpowiedzialny za przechowywanie danych na swoim dysku oraz za replikację danych znajdujących się na pozostałych węzłach. W domyślnej konfiguracji dane trzymane są na trzech różnych węzłach w celu zapewnienia stałej dostępności plików oraz nie dopuszczenia do przeiwania pracy w przypadku awarii części komputerów.
2.2.3 Faza mapowania
(14][15J Sam proces rozproszenia ma swój początek w fazie mapowania, która odpowiada za równomierne rozdzielenie pracy pomiędzy węzłami. Mając do dyspozycji rozproszony system plików HDFS, wczytywany jest, znajdujący się na nim plik z danymi wejściowymi, które dzielone są na mniejsze części. Wygenerowane rekordy nazywane są Splitami, które następnie przetwarzane są do postaci par klucz-wartość (powszechnym przykładem jest tekst sczytywany linia po linii). Powstałe w ten sposób grupy par klucz-wartość rozproszone zostają pomiędzy węzły klastra, gdzie poddawane są funkcji mapowania. Efektem
16