Oddzielić mak od piasku

Niestraszne mu awarie

Platforma jest odporna na błędy. Zamiast polegać na kosztownych rozwiązaniach z górnej półki, ciągłość pracy zapewnia oprogramowanie, które potrafi wykryć awarie i obsługiwać je w warstwie aplikacji. Dane są automatycznie replikowane i przetwarzane na innych węzłach obliczeniowych. Jeśli jakiś komponent przestanie być dostępny, dane będą dostępne również w innym miejscu. Co więcej, w przypadku awarii informacje z uszkodzonego węzła są ponownie replikowane. System jest świadomy nie tylko istnienia pojedynczych serwerów w klastrze, ale również większych jednostek, takich jak szafy stelażowe. Z jednej strony pozwala to zabezpieczyć się na wypadek awarii całej szafy. Z drugiej strony komunikacja w ramach szafy odbywa się szybciej, więc system starać się tak realizować zadania, aby jak najwięcej ruchu sieciowego odbywało się między serwerami umieszczonymi w tej samej szafie.

Jeśli są wolne zasoby, Hadoop uruchomi wiele kopii tego samego zadania, przyjmując wyniki od tego węzła, który zakończy pracę jako pierwszy. Hadoop nie wymaga porządkowania danych wg schematu. Jedną z kluczowych zalet tej platformy jest możliwość zasilania jej nieustrukturyzowanymi danymi. Użytkownik może przesłać dowolny typ danych i pozwolić, aby to system zdeterminował i ustrukturyzował je, jeśli jest to konieczne.

Hadoop dobry na big data

Trzeba pamiętać, że opisane korzyści osiąga się przy pewnej skali. Trudno wskazać ostrą granicę, ale można przyjąć, że do ok. 4 TB danych (to pojemność największych, dostępnych na rynku, standardowych dysków twardych) łatwiej jest wykorzystać inne rozwiązanie. Nawet jeśli te dane nie są ustrukturyzowane, wystarczy przygotować prosty skrypt, który je uporządkuje. Powyżej 4 TB nie wystarczy już tani sprzęt komputerowy. Realnie do wyboru pozostają duże serwery z kilkoma dyskami bądź właśnie Hadoop. Inne rozwiązania będą zbyt kosztowne. Trzeba dodać, że największe korzyści osiąga się przy analizowaniu bardzo dużych, pojedynczych tablic. Jeśli dane są rozproszone, zamiast Hadoop bardziej opłaca się zastosować inne rozwiązanie, np. relacyjną bazę danych.

Ograniczenia

Hadoop dobrze radzi sobie z dużymi zbiorami danych, również tymi, które nie są ustrukturyzowane. Potrafi podzielić duży problem na mniejsze i replikować dane. Jednak te właściwości nie zawsze są wystarczające w zastosowaniach biznesowych, ponieważ platforma ma również pewne niepożądane cechy. Problem pojawia się, jeśli na tym samym zbiorze danych chcemy zrealizować łańcuch operacji, np. najpierw oddzielić mak od piasku, a następnie podzielić według wielkości ziarenek.

Hadoop wykona pierwszą operację, porządkując dane źródłowe i zwracając wyniki. Nie zachowa jednak uporządkowanych danych i przy drugiej operacji wszystkie czynności związane z uporządkowaniem będzie musiał wykonać ponownie, pracując na źródłowych danych. W Hadoop zastosowano mechanizm MapReduce, które dokonuje podziału zadań na wiele części w celu ich rozproszonego przetwarzania. Za każdym razem, gdy ten mechanizm jest uruchamiany, odwołuje się on do danych zapisanych na dyskach i wczytuje je do pamięci operacyjnej.

Jak widać, Hadoop tworzy w dwóch obszarach pewien narzut. Po pierwsze, replikując dane, po drugie, przenosząc dane z dysków do pamięci podczas obsługi każdego odwołującego się do nich zapytania. W biznesie może to wydłużać realizację zadań, gdy do systemu będą trafiały całe serie zapytań odwołujące się do nieustrukturyzowanych danych. W takich sytuacjach szybciej będzie działać rozwiązanie, które po uporządkowaniu danych zachowa je w tej formie w pamięci operacyjnej.

Innym problemem jest bezpieczeństwo. Hadoop oferuje mechanizmy bezpieczeństwa, ale domyślnie są one wyłączone z uwagi na dużą złożoność. Poza tym informacje przechowywane w systemie plików HDFS i podczas przesyłania przez sieć nie są szyfrowane, co jest wyzwaniem, szczególnie dla sektora publicznego.


TOP 200