Zrozumienie dogłębnie
Hadoop
Hadoopjest projektem Apachefundacji typu open source . Jest to framework napisany w Java, pierwotnie opracowany przez Douga Cuttinga w 2005 roku. Został stworzony w celu obsługi dystrybucji dla Nutchwyszukiwarki tekstów. Hadoopwykorzystuje technologie Google Map Reducei Google File System jako podstawę.
Funkcje Hadoop
- Jest zoptymalizowany do obsługi ogromnych ilości ustrukturyzowanych, częściowo ustrukturyzowanych i nieustrukturyzowanych danych przy użyciu sprzętu towarowego.
- Nie ma nic wspólnego z architekturą.
- Replikuje swoje dane na wielu komputerach, więc jeśli jeden z nich ulegnie awarii, dane mogą być przetwarzane z innego komputera, na którym przechowywana jest jego replika.
Hadoopsłuży raczej do dużej przepustowości niż do małych opóźnień. Jest to operacja wsadowa obsługująca ogromne ilości danych; dlatego czas reakcji nie jest natychmiastowy.
- Uzupełnia przetwarzanie transakcji online i przetwarzanie analityczne online. Jednak nie zastępuje on
RDBMS.
- Nie jest dobrze, gdy praca nie może być zrównoleglona lub gdy w danych występują zależności.
- Nie nadaje się do przetwarzania małych plików. Działa najlepiej z dużymi plikami danych i zestawami danych.
Wersje Hadoop
Dostępne są dwie wersje Hadoop:
- Hadoop 1.0
- Hadoop 2.0
Hadoop 1.0
Składa się z dwóch głównych części:
1. Struktura przechowywania danych
Jest to system plików ogólnego przeznaczenia o nazwie Hadoop Distributed File System ( HDFS).
HDFS jest bez schematu
Po prostu przechowuje pliki danych, które mogą mieć dowolny format.
Chodzi o to, aby przechowywać pliki tak blisko ich oryginalnej formy, jak to możliwe.
To z kolei zapewnia jednostkom biznesowym i organizacji bardzo potrzebną elastyczność i sprawność, nie martwiąc się zbytnio tym, co może wdrożyć.
2. Ramy przetwarzania danych
Jest to prosty model programowania funkcjonalnego, spopularyzowany początkowo przez Google jako MapReduce.
Zasadniczo wykorzystuje dwie funkcje: MAPi REDUCEdo przetwarzania danych.
„Mapujący” przyjmują zestaw par klucz-wartość i generują dane pośrednie (czyli kolejną listę par klucz-wartość).
„Reduktory” działają następnie na to wejście w celu wygenerowania danych wyjściowych.
Te dwie funkcje pozornie działają w oderwaniu od siebie, umożliwiając w ten sposób wysoce rozproszone przetwarzanie w bardzo równoległy, odporny na uszkodzenia i skalowalny sposób.
Ograniczenia Hadoop 1.0
Pierwszym ograniczeniem był wymóg MapReduceznajomości programowania.
Obsługiwane było tylko przetwarzanie wsadowe, które wprawdzie nadaje się do zadań takich jak analiza logów, projekty eksploracji danych na dużą skalę, ale prawie nie nadaje się do innych rodzajów projektów.
Jednym z głównych ograniczeń było Hadoop 1.0ścisłe powiązanie obliczeniowe MapReduce, co oznaczało, że uznani dostawcy zarządzania danymi pozostawili dwie opinie:
Albo przepisz ich funkcjonalność, MapReduceaby można je było wykonać w Hadooplub
Wyodrębnij dane HDFSlub przetwarzaj je poza Hadoop.
Żadna z opcji nie była wykonalna, ponieważ doprowadziła do nieefektywności procesu spowodowanej przenoszeniem danych do i z Hadoopklastra.
Hadoop 2.0
W Hadoop 2.0, HDFSnadal ramy przechowywania danych.
Jednakże nowe i indywidualne struktury zarządzania zasobami nazwie Y i kolizyjnego R esource N egotiater ( przędzy ), został dodany.
Każda aplikacja zdolna do dzielenia się na zadania równoległe jest obsługiwana przez YARN.
YARN koordynuje przydział podzadań złożonego wniosku, zwiększając w ten sposób elastyczność, skalowalność i wydajność aplikacji.
Działa poprzez zastosowanie Master aplikacji zamiast Job Tracker , uruchamianie aplikacji na zasobach zarządzanych przez nowy Node Manager .
ApplicationMaster jest w stanie uruchomić dowolną aplikację, a nie tylko MapReduce.
Oznacza to, że obsługuje nie tylko przetwarzanie wsadowe, ale także przetwarzanie w czasie rzeczywistym. MapReducenie jest już jedyną opcją przetwarzania danych.
Zalety Hadoop
Przechowuje dane w swojej natywnej postaci. Nie ma narzuconej struktury podczas wprowadzania danych lub przechowywania danych. HDFSjest mniej schematu. Dopiero później, gdy dane muszą zostać przetworzone, struktura zostaje nałożona na surowe dane.
Jest skalowalny. Hadoopmoże przechowywać i rozpowszechniać bardzo duże zbiory danych na setkach niedrogich serwerów, które działają równolegle.
Jest odporny na awarie. Hadoopto odporność na awarie. Pilnie ćwiczy replikację danych, co oznacza, że za każdym razem, gdy dane są wysyłane do dowolnego węzła, te same dane są replikowane również do innych węzłów w klastrze, zapewniając w ten sposób, że w przypadku awarii węzła zawsze będzie dostępna kolejna kopia danych do użycia.
Jest elastyczny. Jedną z kluczowych zalet Hadoopjest to, że może pracować z dowolnym rodzajem danych: ustrukturyzowanym, nieustrukturyzowanym lub częściowo ustrukturyzowanym. Ponadto przetwarzanie jest niezwykle szybkie Hadoopze względu na paradygmat „przenieś kod do danych”.
Ekosystem Hadoop
Oto elementy Hadoopekosystemu:
HDFS : HadoopRozproszony system plików. Po prostu przechowuje pliki danych możliwie najbliżej oryginalnej formy.
HBase : Jest to baza danych Hadoop i dobrze się porównuje z RDBMS. Obsługuje uporządkowane przechowywanie danych dla dużych tabel.
Hive : Umożliwia analizę dużych zestawów danych przy użyciu języka bardzo podobnego do standardu ANSI SQL, co oznacza, że każda osoba z rodziną SQLpowinna mieć dostęp do danych w Hadoopklastrze.
Świnia : Jest to łatwy do zrozumienia język przepływu danych. Pomaga w analizie dużych zestawów danych, co jest dość porządne Hadoop. PigSkrypty są automatycznie konwertowane na MapReducezadania przez Pigtłumacza.
ZooKeeper : Jest to usługa koordynująca aplikacje rozproszone.
Oozie : Jest to schedularsystem przepływu pracy do zarządzania Hadoopzadaniami Apache .
Mahout : Jest to skalowalna biblioteka do uczenia maszynowego i eksploracji danych.
Chukwa : Jest to system gromadzenia danych do zarządzania dużym systemem rozproszonym.
Sqoop : Służy do przesyłania danych zbiorczych między Hadoopustrukturyzowanymi magazynami danych, takimi jak relacyjne bazy danych.
Ambari : Jest to internetowe narzędzie do udostępniania, zarządzania i monitorowania Hadoopklastrów.
Ul
Hivejest narzędziem infrastruktury hurtowni danych do przetwarzania danych strukturalnych Hadoop. Opiera się on Hadoopna podsumowaniu Big Data i ułatwia wyszukiwanie i analizę zapytań.
Rój nie jest
Relacyjna baza danych
Projekt do przetwarzania transakcji online ( OLTP).
Język zapytań w czasie rzeczywistym i aktualizacji na poziomie wiersza.
Funkcje ula
Przechowuje schemat w bazie danych i przetwarza dane w HDFS.
Jest przeznaczony do OLAP.
Zapewnia SQLjęzyk typów dla zapytań o nazwie HiveQLlub HQL.
Jest bardziej rodzinny, szybki, skalowalny i rozszerzalny.
Architektura ula
Architektura Hive zawiera następujące komponenty:
Interfejs użytkownika : Hivejest data warehouseinfrastrukturą, która może tworzyć interakcje między użytkownikiem a HDFS. Obsługiwane interfejsy użytkownika Hiveto Hive Web UI, Hive Command Line i Hive HD Insight (w systemie Windows Server).
MetaStore : Hivewybiera odpowiedni database serversdo przechowywania schematu lub Metadatatabel, baz danych, kolumn w tabeli, ich typów danych i HDFSmapowania.
HiveQL Process Engine : HiveQLjest podobny do SQLzapytania o informacje o schemacie w Metastore. Jest to jeden z zamienników tradycyjnego podejścia do MapReduceprogramu. Zamiast pisać MapReducew Java, możemy napisać zapytanie do MapReducei przetwarza je.
Exceution Silnik : Część koniunkcja HiveQLsilniku procesowym i MapReducejest HiveExecution Engine. Silnik wykonawczy przetwarza zapytanie i generuje wyniki tak samo jak MapReduce results. Wykorzystuje smak MapReduce.
HDFS lub HBase : Hadooprozproszony system plików lub HBasetechniki przechowywania danych służące do przechowywania danych w systemie plików.