Nie ulega wątpliwościom, że wielkie magazyny danych są rzeczywistością, z którą na co dzień mierzy się wiele przedsiębiorstw. Sam etap zarządzania, przeprowadzania procesów obejmujących przetwarzanie czy analizowanie to coraz częściej spotykany repertuar, a idąc za tą koncepcją rozwoju, dużą rolę odgrywają również narzędzia i techniki mające usprawnić ich przebieg. Jednym z powszechnie znanych, dostępnych ofert dla obszarów Big Data jest w tym zakresie Hadoop.
Hadoop – czyli co?
Hadoop jest narzędziem, które umożliwia przechowywanie i przetwarzanie dużych ilości danych w środowisku rozproszonym. Został zaprojektowany do celów skalowania od pojedynczych serwerów do tysięcy maszyn, z których każda oferuje lokalne obliczenia i pamięć masową. To co w istocie ważne – model jest zaprojektowany do samodzielnego wykrywania i obsługi awarii w warstwie aplikacji, zapewniając w ten sposób wysoce dostępną usługę na klastrze komputerów, z których każdy może być podatny na awarie.
Jednak żeby w pełni zrozumieć czym jest i jakie możliwości oferuje, warto poznać jego genezę.
Na początku był chaos i… Apache Nutch
Hadoop ma za sobą długą drogę jeśli mowa o jego powstaniu. Jako projekt open source, był i wciąż jest rozwijany przez społeczność entuzjastów, dzięki czemu doczekał się trzech głównych wersji a praca nad pierwszą datuje swój początek na rok 2005.
Można rzec, że historia rozpoczyna się w momencie kiedy Doug Cutting, jeden ze współzałożycieli Hadoop, realizował własny koncept o nazwie Lucene będącym swoistą biblioteką wspierającą indeksację oraz wyszukiwanie pełnotekstowe. Twórca nie ograniczał się tylko do tego, ponieważ za kolejny cel uznał obszar związany z indeksowaniem stron internetowych. Do realizacji tego założenia swoją cegiełkę dorzucił Mike Cafarella a projekt z uwagi na wykorzystanie biblioteki Lucene stał się oficjalnym podprojektem Apache Lucene otrzymując jednocześnie swoją własną nazwę jaką jest Apache Nutch.
Ciężka praca przełożyła się na znacznie widoczne postępy i finalnie udało się wdrożyć Nutch na jednej maszynie, która była w stanie indeksować około 100 stron na sekundę.
Dobra passa nie trwała jednak długo. Wraz z upływem czasu zaczęły pojawiać się problemy wynikające ze skalowalności a próba ich rozwiązania poprzez zwiększenie liczby maszyn była co najwyżej doraźna. Jak się okazało, oddało to negatywny wpływ względem problemów operacyjnych z uwagi na to, że system nie posiadał podstawowego menedżera klastra do wykonywania zadań operacyjnych. W obliczu takich kluczowych wad Doug i Mike określili swoje oczekiwania co do najbardziej satysfakcjonującego rozwiązania. Zależało im aby mieć coś co przejawia cechy:
- odporność na awarię,
- równoważenie obciążeń,
- zapobieganie utraty danych.
Burza mózgów przerodziła się w rozpoczęcie kolejnych etapów prac nad stworzeniem systemu marzeń. W międzyczasie jednak historia zatacza koło u progu obecnego giganta jakim jest Google. Opublikował on w 2003 roku dokumentację na temat Google File System (w skrócie: GFS), którego głównym założeniem było przetwarzanie i przechowywanie danych w sposób rozproszony. Koncepcja miała umożliwiać i usprawniać wykonywanie zadań, poprawić wydajność oraz odporność na awarię przy jednoczesnym uwzględnieniu kwestii finansowych, ponieważ na tamten moment firma nie mogła wdrożyć u siebie ówcześnie funkcjonujących ale przy tym i drogich rozwiązań.
Dostępny artykuł nie umknął uwadze Mikeowi i Dougowi, który, jak się okazało, zawiera w swojej strukturze sposób na te trudności z jakimi się zmagali. Zainspirowani, zdecydowali się w końcu na wdrożenie i rozpoczęcie rozwoju własnego Nutch Distributed File System (w skrócie: NDFS), który doczekał się finalizacji w 2004 roku i oficjalnego zakończenia problemów operacyjnych dla Apache Nutch.
…ale co dalej?
Dalej…kolejne prace nad rozwojem produktu i stworzenia algorytmu, który umożliwiłby przetwarzanie danych przechowywanych w NDFS tak aby wydajność można było podwoić poprzez podwojenie liczby maszyn. Naprzeciw wyszła ponownie firma Google publikująca w 2004 roku artykuł na temat MapReduce: Simplified Data Processing on Large Clusters.Główną ideą MapReduce było zapewnienie równoległości, odporności na błędy oraz lokalizowania danych czyli wykonywania programu w miejscu przechowywania danych. Ten koncept modelu został zaimplementowany w Apache Nutch rok później, a w 2006 roku Doug poszedł o krok dalej tworząc Hadoop Distributed File System (w skrócie: HDFS).
Przyszedł w końcu i czas na zaadoptowanie możliwości Hadoop’a. Problemy z wydajnością wyszukiwania odnotowała firma Yahoo!, która znając wszelkie walory tworów Google postanowiła przy pomocy Douga wdrożyć i jego system. W 2007 roku do kręgu zwolenników Hadoop’a dołączyły kolejne przedsiębiorstwa. W międzyczasie wprowadzano coraz to nowsze usprawnienia, walczono i przezwyciężono kwestię skalowalności i zarządzania zasobami. Ten etap dał tak naprawdę Hadoop’owi nowe życie kreując jego główne zalety takie jak między innymi:
- zapewnienie wydajnego i szybkiego przetwarzania wsadowego (batch processing) w środowisku rozproszonym,
- ograniczenie kosztów poprzez zastosowanie prostej infrastruktury,
- możliwość przetwarzania zarówno danych ustrukturyzowanych jak i nieustrukturyzowanych, logów, zdjęć, audio czy e-maili.
Sprzyja to stałemu zainteresowaniu i wykorzystywaniu go do dnia dzisiejszego przez duże koncerny takie jak:
- Yahoo!
- Hulu
- Last.fm
- Spotify
- IBM
- Adobe
- eBay
- AOL
- Dropbox
- Cisco
- Huawei
- Microsoft
- StumbleUpon
- Apple
Na skalę krajową natomiast, użytkownikami są między innymi:
- Allegro
- Pracuj.pl
- IBM Netezza
- PKO BP
- BZWBK
- Alior Bank
- ING
- ICM
- IPI PAN
Co ciekawe…
- Według szacunków International Data Corporation (IDC) Apache Hadoop w 2016 roku osiągnął wartość 812.8 milionów dolarów
- Nazwa Hadoop nie jest żadnym akronimem. Jak się okazuje, twórca projektu, Doug zainspirował się kreatywnością własnego syna – Hadoop to imię maskotki będącej żółtym słonikiem.
Hadoop nie powiedział jeszcze „Dość!”
Bez wątpienia – Hadoop jest jedną z najbardziej rozpoznawalnych usług wykorzystywanych w pracach związanych z Big Data. Mimo, że czas biegnie i powstają coraz to nowsze, lepiej dostosowane usługi do coraz to bardziej specyficznych wymagań, to długo jeszcze będzie traktowanie tych obu pojęć w kontekście synonimów. Sam fakt przyłączenia Hadoop’a do wielkiej, rozpoznawalnej rodziny Apache Fundation i stały rozwój zarówno przez samą społeczność ale również i firmy korzystające z jego zasobów, powoduje, że wciąż jest o nim głośno a i sam jeszcze nie powiedział tego ostatniego słowa. Warto zatem przyjrzeć się tej technologii bliżej i poznać jej możliwości.