Oddzielić mak od piasku

Eksperci zwracają uwagę, że HDFS jest niewydajny w przetwarzaniu małych plików. Ten system plików nie był projektowany z myślą o realizowaniu wielu przypadkowych operacji odczytu małych plików. Przeciwnie, został zoptymalizowany pod kątem dużej, stałej przepustowości i odczytu dużych plików. Osiągnięto to m.in. poprzez wprowadzenie obsługi bloków o dużych rozmiarach, co sprawdza się przy odczycie plików, których wielkość jest liczona w terabajtach czy petabajtach.

Architektura MapReduce sprawia, że Hadoop nie jest dobry w zastosowaniach, które wymagają dostępu do danych w czasie rzeczywistym. Ponadto MapReduce nie działa dobrze w przypadkach, w których wymagane jest współdzielenie zmieniających się danych.

Kwestia sprzętu

W większości serwerowni infrastruktura jest zoptymalizowana pod kątem wirtualizacji – serwery blade korzystają ze współdzielonej macierzy czy wspólnych łączy sieciowych wewnątrz obudowy. Taka architektura, mimo dużej mocy obliczeniowej i innych zalet, nie sprawdzi się jako klaster Hadoopa. Ta platforma działa najlepiej na sprzęcie, który nie współdzieli żadnych zasobów (share nothing). Typowy klaster Hadoopa składa się z serwerów stelażowych umieszczonych w szafach wyposażonych w przełączniki typu top-of-the-rack (coraz częściej są to przełączniki 10 GE). Przełączniki te są połączone uplinkami z kolejnymi przełącznikami, które umożliwiają komunikację pomiędzy szafami rack, tworząc w ten sposób klaster. Większość serwerów to węzły typu slave, z dużą ilością lokalnych dysków, średnio wydajnymi procesorami oraz przeciętną ilością pamięci RAM. Węzły typu master będą miały więcej pamięci RAM i szybsze procesory, ale mniej dysków twardych.

Zastosowania

Zdecydowana większość danych na świecie (specjaliści podają, że 80%) jest nieustrukturyzowana. Większość firm nie próbuje wykorzystać potencjału, jaki w nich drzemie. Tymczasem analiza takich danych może przynieść spore korzyści. Nie da się jednak zrobić tego za pomocą narzędzi Business Intelligence wykorzystujących relacyjne bazy danych i język SQL. Operuje on tylko na uporządkowanych danych. Tu z pomocą przychodzi Hadoop, który takie dane potrafi uporządkować.

Swego czasu tę właściwość wykorzystała firma EMC, która chciała poznać opinie o swoich produktach publikowane w internecie. Po wyszukaniu wzmianek o EMC na blogach i w mediach trafiały one do klastra Hadoop, którego zadaniem było usunięciem nieistotnych słów i kodu HTML. Oczyszczone dane były przekazywane do relacyjnej bazy danych. Innym przykładem jest AOL. Portal zbudował system reklamowy, wykorzystując platformę Hadoop. Firma zbiera wiele informacji o użytkownikach. Na ich postawie oraz innych parametrów, np. wymagań reklamodawcy, system musi dobrać w 40 milisekund reklamę, która ma największe szanse zainteresować użytkownika. Codziennie zbieranych jest od 4 do 5 terabajtów danych, a system podejmuje 600 tys. decyzji na sekundę. Facebook stosuje Hadoopa do przechowywania wewnętrznych logów, które wykorzystuje jako źródło do tworzenia raportów i analityki. Serwis ma 2 klastry: pierwszy składający się z 1100 maszyn i drugi liczący 300 maszyn. Każdy z serwerów jest wyposażony w 8 rdzeni procesorów i 12 TB pamięci dyskowej.

Nie brakuje przykładów mniejszych wdrożeń wśród mniej znanych firm. Firma Rackspace wdrożyła 30-serwerowy klaster, który służy do parsowania i indeksowania logów z systemu hostującego serwery pocztowe. Babacar ma klaster składający się z 4 węzłów, który służy do wyszukiwania w internecie i analizowania milionów rezerwacji na wynajem samochodów.


TOP 200