Radzenie sobie z tonami danych wymaga specjalnego przygotowania. Powszechne techniki obliczeniowe są niewystarczające, aby obsłużyć zalew danych; tym bardziej, gdy pochodzą one z wielu źródeł. W Big Data wielkość, o której mówimy, jest ogromna — mierzona w zettabajtach, eksabajtach lub milionach petabajtów lub miliardach terabajtów. Struktura o nazwie Hadoop jest powszechnie używany do rozwiązywania niektórych problemów związanych z zarządzaniem Big Data. Ten artykuł jest próbą przedstawienia wstępnego pomysłu na temat Hadoop w świetle Big Data.
Ewolucja
Nic nie dzieje się z wielkim wybuchem. Powstanie i ewolucja Hadoopa przebiega stopniowo i zgodnie z potrzebą godziny w radzeniu sobie z Big Data. Krótko mówiąc, zawdzięcza swoje pochodzenie projektowi Doug Cutting Apache Nutch z 2003 roku, zwłaszcza na początku jego część kodowa. Geneza została opracowana na podstawie Google File System (GFS), artykułu opublikowanego w październiku 2003 r., który wpłynął na inny artykuł o nazwie MapReduce:Simplified Data Processing on Large Clusters. Kod dla HDFS w Hadoop jest uwzględniony w projekcie Apache Nutch w 2006 roku i jest pod dużym wpływem algorytmów GFS i MapReduce. A fakt, że nazwa „Hadoop” pochodzi od pluszowej zabawki słonia syna Cuttinga, wyraźnie odzwierciedla ideę, że w pokoju jest słoń, którym Hadoop wyraźnie chce się zająć.
W skrócie
Dzisiaj Hadoop wyrósł z monolitycznych początków jako biblioteka oprogramowania, platforma do tworzenia aplikacji wymagających rozproszonego przetwarzania ogromnych ilości danych znajdujących się w klastrach komputerów przy użyciu prostych modeli programowania. Może skalować od pojedynczego serwera do tysięcy maszyn. Pomysł polega na rozmieszczeniu obliczeń i pamięci na wielu komputerach, aby wykorzystać przetwarzanie dużych zestawów danych. Biblioteka ma możliwość wykrywania awarii na poziomie warstwy aplikacji, dzięki czemu programista może je obsłużyć i świadczyć usługi na szczycie klastra komputerów, zamiast przenikać awarię na jeden lub więcej niższych poziomów, gdzie staje się trudniejsze do zarządzać lub przezwyciężyć.
Hadoop jest zatem kombinacją narzędzi i bibliotek open source obsługiwanych przez Apache do tworzenia aplikacji do przetwarzania rozproszonego, które są wysoce niezawodne i skalowalne.
Jak to działa
Hadoop zasadniczo radzi sobie z Big Data na trzy sposoby:
- Pierwszy problem to przechowywanie. Dane są przechowywane na wielu maszynach obliczeniowych w rozproszonym środowisku, gdzie mogą być przetwarzane równolegle w celu zmniejszenia czasu i zasobów. Dane są utrwalane w środowisku o nazwie Hadoop Distributed File System (HDFS) , który służy do przechowywania danych w wielu formatach w klastrach maszyn. W tym celu dzieli dane na bloki i przechowuje je w różnych węzłach danych. Wykorzystuje technikę o nazwie skalowanie poziome aby dodać dodatkowe węzły danych do istniejących klastrów HDFS zgodnie z wymaganiami. Maksymalizuje to wykorzystanie istniejącego zasobu zamiast dodawania go za każdym razem, gdy pojawia się potrzeba skalowania.
- Drugą kwestią jest uwzględnienie różnorodności danych. HDFS jest przystosowany do przechowywania wszelkiego rodzaju danych, zarówno ustrukturyzowanych, częściowo ustrukturyzowanych, jak i nieustrukturyzowanych. Nie ma wstępnej walidacji schematu. Dane, raz zapisane, mogą być odczytywane wiele razy bez żadnego problemu.
- Trzecia kwestia dotyczy przetwarzania i dostępu do przechowywanych danych. W związku z tym na ratunek przychodzi algorytm MapReduce, w którym przetwarzanie jest rozdzielane na węzły podrzędne, aby działały równolegle, a wynik jest wysyłany z powrotem do węzła głównego. Węzeł główny łączy wyniki przed dostarczeniem ostatecznego wyniku. Ta część jest obsługiwana przez YARN, który jest przeznaczony do równoległego przetwarzania danych przechowywanych w HDFS.
Jest w nim wiele zawiłych elementów, ale to właśnie robi Hadoop. Pomysł z modułami dałby dalszy wgląd.
Moduły
Projekt Apache Hadoop składa się z sześciu modułów. Pierwsze cztery są następujące:
- Hadoop wspólne :Składa się z narzędzi powszechnie używanych przez Hadoop i obsługuje inne moduły Hadoop. Jest również znany jako Hadoop Core i jest istotną częścią ekosystemu, wraz z HDFS, YARN i MapReduce. To właśnie w tej części Hadoop zakłada, że sprzęt jest podatny na awarie i zapewnia programiście wszelkie niezbędne środki, aby automatycznie radzić sobie z awariami oprogramowania.
- Rozproszony system plików Hadoop (HDFS) :Rozproszony system plików, który może pomieścić różne pliki w rozproszonym środowisku. Dzieli pliki na bloki i przechowuje je w węzłach w architekturze rozproszonej. Zapewnia skalowanie w poziomie zamiast skalowania w pionie, do dodatkowego grupowania w górę. Jest wysoce odporny na uszkodzenia i niski koszt pod względem możliwości wdrażania sprzętu.
- Przędza Hadoop :To jest procesor platformy Hadoop. Z dwoma głównymi komponentami, zwanymi NodeManager i Menedżer zasobów , YARN wykonuje wszystkie czynności przetwarzania, takie jak alokacja zasobów, planowanie zadań i zarządzanie klastrami.
- Hadoop MapReduce :Jest to framework do wykonywania wszystkich obliczeń równoległych. MapReduce to równoległy model programowania do przetwarzania danych w środowisku rozproszonym. Idealnie nadaje się do pisania aplikacji rozproszonych, które mogą wydajnie przetwarzać duże ilości danych w klastrach zwykłego sprzętu. Dzieli proces na dwie fazy, zwane Mapą i Zmniejsz , gdzie zadaniem Mappera klasa jest pobranie danych wejściowych, tokenizacja, mapowanie i sortowanie. Wyjście staje się wtedy wejściem do Reduktora klasa, która wyszukuje pasujące pary i redukuje je. Istnieją pary klucz-wartość dla wejścia i wyjścia w każdej fazie, a typ pary jest określany przez programistę.
Niedawno dodano dwa nowe podprojekty:
- Ozon Hadoop :Jest to skalowalna, nadmiarowa i rozproszona składnica obiektów dla platformy Hadoop. Oprócz skalowania do miliardów obiektów o różnych rozmiarach, Ozone może skutecznie działać w środowiskach kontenerowych, takich jak Kubernetes i YARN. Jest zbudowany na wysoce dostępnej, replikowanej warstwie pamięci blokowej o nazwie Hadoop Distributed Data Store (HDDS) . [Fragment. Kliknij, aby znaleźć więcej.]
- Okręt podwodny Hadoop :Silnik uczenia maszynowego dla Hadoop. Jest to projekt, który umożliwia inżynierowi infrastruktury/badaczowi danych uruchamianie aplikacji głębokiego uczenia (Tensorflow, Pytorch itd.) na platformie zarządzania zasobami (takiej jak YARN). [Fragment. Kliknij, aby znaleźć więcej.]
Wniosek
Hadoop wywarł znaczący wpływ na wyszukiwania, w procesie rejestrowania, w hurtowniach danych i analizie Big Data w wielu dużych organizacjach, takich jak Amazon, Facebook, Yahoo i tak dalej. Jest to kompleksowe rozwiązanie do przechowywania ogromnych ilości dowolnego rodzaju danych, któremu towarzyszy skalowalna moc obliczeniowa umożliwiająca wykorzystanie praktycznie nieograniczonej liczby jednoczesnych zadań. Krótko mówiąc, popularność Hadoopa w dużej mierze zawdzięcza jego odporności na błędy, skalowalności, opłacalności i szybkości.