Apache Hadoop – do obróbki olbrzymich zbiorów danych

Apache Hadoop – do obróbki olbrzymich zbiorów danych Pixabay – Akela999

W dobie postępującej informatyzacji niemal wszystkich dziedzin naszego życia coraz większego znaczenia nabiera właściwe gromadzenie, przechowywanie oraz przetwarzanie dużych zbiorów danych, tzw. Big Data. Dla wielu przedsiębiorstw działających w sferze nowoczesnych technologii jest to wręcz kluczowa kwestia dla właściwego funkcjonowania biznesu. W takich sytuacjach nie obejdzie się bez odpowiednich narzędzi, np. w postaci otwartej platformy programistycznej Apache Hadoop. 

Zazwyczaj w domu lub firmie posiadamy komputer, którego pamięć zewnętrzna wynosi kilkanaście, kilkadziesiąt gigabajtów. Jest to wielkość, która zaspokaja wszystkie nasze potrzeby związane z gromadzeniem różnorakich danych. Jednak w przypadku gigantów technologicznych potrzeby są wielokrotnie większe. Potężne zbiory zmiennych i różnorodnych danych, tzw. Big Data, sięgają obecnie już petabajtów czy eksabajtów. A ponieważ liczba nowych danych przyrasta w tempie postępu geometrycznego, w przyszłości zapotrzebowanie na pojemność centrów danych będzie rosło. Co więcej, przetwarzanie tych danych za pomocą tradycyjnych metod byłoby niemożliwe, ewentualnie zajęłoby mnóstwo czasu i nie zawsze zakończyłoby się sukcesem.

Rozwiązaniem problemów z całą pewnością nie będzie zwiększanie liczby serwerów, gdyż niebawem po prostu zabraknie miejsca do ich lokowania, a komunikacja pomiędzy serwerami a centralnymi komputerami stanie się coraz bardziej skomplikowana. W takich sytuacjach do gry muszą wejść odpowiednie technologie, których zadaniem będzie sprawne zarządzanie potężnymi zbiorami danych.

Na początku był słonik

Jednym z takich narzędzi do obsługi dużej liczby danych, które dziś cieszy się już sporą popularnością, jest platforma Apache Hadoop. Prace nad nią zaczęły się w 2005 r., choć genezy jej powstania można szukać w 2003 r. i publikacji firmy Google na temat rozproszonego systemu plików Google File System. Od tego momentu wiele różnych firm coraz częściej zaczęło pochylać się nad powyższym problemem i, co ciekawe, często łącząc siły ze swymi konkurentami rynkowymi. Najlepszym przykładem mogą tu być właśnie prace nad środowiskiem Hadoop, w którym aktywnie uczestniczyły firmy Yahoo! oraz Google.

Jednym z pomysłodawców platformy Hadoop jest Doug Cutting, który jednocześnie był ojcem chrzestnym tego rozwiązania. To od imienia małego słonika jego syna pochodzi nazwa narzędzia. Pierwsza wersja platformy Hadoop powstała w 2006 r. i potrafiła przesortować zbiór danych o objętości 1,8 terabajtów zgromadzonych w 188 węzłach w czasie prawie... 48 godzin. Prace nad platformą trwały nieustannie (nad ulepszaniem tego rozwiązania pracują różne komercyjne firmy) i co rusz na rynek trafiały kolejne wersje, aż wreszcie w 2013 r. doczekaliśmy się drugiej generacji tego oprogramowania, a niebawem powinna pojawić się trzecia odsłona (we wrześniu 2016 r. zaprezentowana została wersja alfa 3.0.0).

Co to jest Apache Hadoop?

Apache Hadoop można zdefiniować jako otwartą platformę programistyczną pamięci masowej do rozproszonego składowania i przetwarzania wielkich zbiorów danych przy użyciu klastrów komputerowych. Duże zbiory danych są tu dzielone na mniejsze części i przechowywane w tzw. węzłach. Dzięki temu podziałowi istnieje możliwość jednoczesnego przetwarzania w wielu węzłach na raz. Jedną z najważniejszych różnic tego rozwiązania w porównaniu do tradycyjnych systemów obsługujących zbiory danych jest również miejsce ich przetwarzania. W standardowych rozwiązaniach dane są wyciągane z bazy i przetwarzane w innym miejscu. W Hadoop to do zbioru danych (węzła) wysyłany jest konkretny kod oprogramowania, który dokonuje odpowiednich działań i ich efekty odsyła z powrotem do węzła, gdzie są zapisywane.

Środowisko Hadoop ma wiele istotnych zalet, dzięki którym zyskuje coraz większą popularność. Przede wszystkim pozwala na przetwarzanie olbrzymich zbiorów danych w różnej postaci – zarówno strukturalnej, jak i niestrukturalnej. Może pracować obok istniejących już centrów danych, dostarczając nowych metod przetwarzania tych danych. Kolejne moduły są tak tworzone, aby bez problemów można je było implementować do różnych formatów danych, a jednocześnie coraz większa liczba rozwiązań zewnętrznych posiada wtyczki współpracujące z Hadoopem. Ważnym założeniem, wprowadzonym już na etapie tworzenia tego narzędzia, była możliwość wystąpienia awarii sprzętu oraz oprogramowania. Dlatego też wszystkie moduły są tak tworzone, by automatycznie reagować na pojawienie się awarii.

Duże możliwości w zakresie skalowania danych pozwalają na przechowywanie dużych objętościowo zbiorów danych z przestrzeni kilku lat. Docelowo nowe wersje Apache Hadoop będą musiały umieć się zmierzyć z danymi z przestrzeni kilkunastu (kilkudziesięciu?) lat.

Apache Hadoop – dodatkowe moduły

Należy pamiętać, że Apache Hadoop nie jest pojedynczym oprogramowaniem do analizy danych. To swego rodzaju środowisko, które skupia wokół siebie różne programy i moduły wykorzystywane do działań na zbiorach danych.

Jednym z najważniejszych komponentów Hadoopa jest system HDFS (Hadoop Distributed File System), czyli rozproszony systemów plików zapewniający wysoką wydajność w dostępie do danych. HDFS zna bardzo dobrze strukturę bazy danych i wie, gdzie poszczególne informacje są zapisane, co znacznie skraca czas transferu. Ponadto wykonuje on po kilka kopii każdego pliku, co w przypadku uszkodzenia dysku czy serwera pozwala na szybkie odtworzenie.

Ważnym elementem platformy Hadoop jest narzędzie Map-Reduce, które pozwala tworzyć różne aplikacje do przetwarzania danych w kilku krokach. Na początku wykonywane są podstawowe działania lokalnie na pojedynczych plikach (w istniejących węzłach). Uzyskane wyniki są następnie dystrybuowane według odpowiedniego klucza, a później grupowanie. Do ważnych elementów składowych należy zaliczyć również takie moduły jak Hadoop Common (biblioteka i narzędzia wykorzystywane przez pozostałe moduły) czy Hadoop Yarn (narzędzia do analiz danych przy użyciu aplikacji niezależnych od MapReduce).

Apache Hadoop receptą na dużą ilość danych

W ciągu ostatnich lat ilość danych gromadzonych na serwerach firm działających w Internecie wzrosła o 90%. Do 2020 r. co sekundę powstanie 1,7 MB danych na każdego człowieka na Ziemi, co będzie oznaczało zebranie 44 ZB (zettabajtów) informacji. Większą ich część produkują telefony komórkowe. Tymczasem przewiduje się, że do roku 2020 będzie już działać ponad 6 miliardów tych urządzeń. Ale to wszystko może okazać się niczym w porównaniu do przewidywanych 50 miliardów urządzeń Internetu Rzeczy. Przy tej masie danych i jej różnorodności oraz ciągłym ich przesyle z różnych kierunków tradycyjne metody zabezpieczeń powoli przestaną wystarczać.

I tu z pomocą może przyjść Apache Hadoop. Dzięki temu, że jest to otwarta platforma, można ją dowolnie rozwijać zgodnie z własnymi potrzebami. Obecnie wokół Hadoop uruchomionych zostało już ponad 2500 projektów Open Source. Konstrukcja tego systemu pozwala na dostęp do danych nawet w przypadku awarii jednego czy kilku węzłów, a także samego sprzętu.

Niskie koszty przechowywania danych oraz możliwość korzystania z niej dzięki licencji Open Source sprawiają, że dbanie o bezpieczeństwo danych jest tańsze. Ekonomiści szacują, że obecnie rynek usług cyberbezpieczeństwa na świecie osiągnął wartość 75,4 mld dolarów, a do roku 2020 ma wzrosnąć do 170 mld dolarów. Spora część start-upów działających w tej branży korzysta z rozwiązań opartych na Apache Hadoop. Oznacza to, że w przyszłości coraz więcej cyberpolicjantów będzie mniej lub bardziej powiązanych z pluszowym żółtym słonikiem, a ciągłe prace nad udoskonalaniem platformy Hadoop mogą sprawić, że jej zakres zastosowań będzie się stale rozszerzał.

Tagi artykułu

Zobacz również

Chcesz otrzymać nasze czasopismo?

Zamów prenumeratę