Co to jest Hive? Architektura i Tryby

Spisie treści:

Anonim

W tym samouczku nauczysz się:

  • Co to jest Hive?
  • Architektura ula
  • Różne tryby ula
  • Co to jest Hive Server2 (HS2)?

Co to jest Hive?

Hive to narzędzie ETL i hurtowni danych opracowane na podstawie rozproszonego systemu plików Hadoop (HDFS). Hive ułatwia pracę przy wykonywaniu takich operacji, jak

  • Hermetyzacja danych
  • Zapytania ad hoc
  • Analiza ogromnych zbiorów danych

Ważne cechy Hive

  • W Hive najpierw tworzone są tabele i bazy danych, a następnie dane są ładowane do tych tabel.
  • Hive jako hurtownia danych zaprojektowana do zarządzania tylko danymi strukturalnymi przechowywanymi w tabelach i wykonywania zapytań.
  • Podczas radzenia sobie z danymi strukturalnymi Map Reduce nie ma funkcji optymalizacji i użyteczności, takich jak UDF, ale platforma Hive ma. Optymalizacja zapytań odnosi się do efektywnego sposobu wykonywania zapytań pod względem wydajności.
  • Język Hive inspirowany SQL oddziela użytkownika od złożoności programowania Map Reduce. Ponownie wykorzystuje znane koncepcje ze świata relacyjnych baz danych, takie jak tabele, wiersze, kolumny i schematy itp. W celu ułatwienia nauki.
  • Programowanie Hadoop działa na płaskich plikach. W związku z tym Hive może używać struktur katalogów do „partycjonowania” danych w celu zwiększenia wydajności niektórych zapytań.
  • Nowy i ważny składnik Hive, tj. Metastore używany do przechowywania informacji o schemacie. Ten Metastore zazwyczaj znajduje się w relacyjnej bazie danych. Możemy wchodzić w interakcje z Hive za pomocą metod takich jak
    • Web GUI
    • Interfejs Java Database Connectivity (JDBC)
  • Większość interakcji odbywa się za pośrednictwem interfejsu wiersza poleceń (CLI). Hive zapewnia interfejs wiersza polecenia do pisania zapytań programu Hive przy użyciu języka zapytań Hive (HQL)
  • Ogólnie składnia języka HQL jest podobna do składni języka SQL, którą zna większość analityków danych. Poniższe przykładowe zapytanie wyświetla wszystkie rekordy obecne we wspomnianej nazwie tabeli.
    • Przykładowe zapytanie : Wybierz * z
  • Hive obsługuje cztery formaty plików: TEXTFILE, SEQUENCEFILE, ORC i RCFILE (Record Columnar File).
  • W przypadku magazynu metadanych pojedynczego użytkownika Hive używa bazy danych Derby, a dla przypadku wielu metadanych użytkownika lub udostępnionych metadanych Hive używa MYSQL.

Aby skonfigurować MySQL jako bazę danych i przechowywać informacje o metadanych, zapoznaj się z samouczkiem „Instalacja i konfiguracja HIVE i MYSQL”

Niektóre z kluczowych punktów dotyczących Hive:

  • Główna różnica między HQL i SQL polega na tym, że zapytanie Hive jest wykonywane w infrastrukturze Hadoop, a nie w tradycyjnej bazie danych.
  • Wykonywanie zapytania Hive będzie podobne do serii automatycznie generowanych map, redukujących zadania.
  • Hive obsługuje koncepcje partycji i zasobników w celu łatwego pobierania danych, gdy klient wykonuje zapytanie.
  • Hive obsługuje niestandardowe UDF (User Defined Functions) do czyszczenia danych, filtrowania itp. Zgodnie z wymaganiami programistów można zdefiniować UDF Hive.

Relacyjne bazy danych Hive Vs: -

Korzystając z Hive, możemy wykonywać pewne specyficzne funkcje, których nie można osiągnąć w relacyjnych bazach danych. W przypadku ogromnej ilości danych w peta-bajtach ważne jest wysyłanie zapytań i uzyskiwanie wyników w ciągu kilku sekund. Hive robi to dość wydajnie, szybko przetwarza zapytania i generuje wyniki w sekundach.

Zobaczmy teraz, co sprawia, że ​​Hive jest tak szybki.

Poniżej przedstawiono niektóre kluczowe różnice między Hive a relacyjnymi bazami danych;

Relacyjne bazy danych to „ Schemat przy odczycie i Schemat przy zapisie ”. Najpierw utwórz tabelę, a następnie wstaw dane do konkretnej tabeli. W tabelach relacyjnej bazy danych można wykonywać funkcje, takie jak wstawienia, aktualizacje i modyfikacje.

Hive to „ Schemat tylko do odczytu ”. Tak więc funkcje takie jak aktualizacja, modyfikacje itp. Nie działają z tym. Ponieważ zapytanie Hive w typowym klastrze działa na wielu węzłach danych. Dlatego nie jest możliwe aktualizowanie i modyfikowanie danych w wielu węzłach. (Wersje Hive poniżej 0.13)

Ponadto Hive obsługuje wzorzec „ CZYTAJ WIELE PISZ raz ”. Oznacza to, że po wstawieniu tabeli możemy zaktualizować tabelę w najnowszych wersjach Hive.

UWAGA : Jednak nowa wersja Hive zawiera zaktualizowane funkcje. Wersje Hive (Hive 0.14) zawierają opcje aktualizacji i usuwania jako nowe funkcje

Architektura ula

Powyższy zrzut ekranu szczegółowo wyjaśnia architekturę Apache Hive

Ula składa się głównie z 3 podstawowych części

  1. Klienci Hive
  2. Usługi ula
  3. Hive Storage and Computing

Klienci Hive:

Hive zapewnia różne sterowniki do komunikacji z różnymi typami aplikacji. W przypadku aplikacji opartych na oszczędności zapewni klientowi Thrift do komunikacji.

W przypadku aplikacji związanych z językiem Java udostępnia sterowniki JDBC. Poza jakimikolwiek typami aplikacji dostępne są sterowniki ODBC. Ci klienci i sterowniki z kolei ponownie komunikują się z serwerem Hive w usługach Hive.

Usługi ula:

Interakcje klienta z usługą Hive można wykonywać za pośrednictwem usług Hive. Jeśli klient chce wykonać jakiekolwiek operacje związane z zapytaniami w programie Hive, musi komunikować się za pośrednictwem usług Hive.

CLI to interfejs wiersza polecenia działający jako usługa Hive dla operacji DDL (język definicji danych). Wszystkie sterowniki komunikują się z serwerem Hive i głównym sterownikiem w usługach Hive, jak pokazano na powyższym diagramie architektury.

Sterownik obecny w usługach Hive reprezentuje główny sterownik i komunikuje wszystkie typy JDBC, ODBC i inne aplikacje klienckie. Sterownik będzie przetwarzał te żądania z różnych aplikacji do meta-sklepu i systemów terenowych w celu dalszego przetwarzania.

Hive Storage and Computing:

Usługi Hive, takie jak Meta store, File System i Job Client, z kolei komunikują się z magazynem Hive i wykonują następujące czynności

  • Informacje o metadanych tabel utworzonych w programie Hive są przechowywane w „Meta-baza danych magazynu” programu Hive.
  • Wyniki zapytania i dane załadowane w tabelach będą przechowywane w klastrze Hadoop na HDFS.

Przebieg egzekucji ofert pracy:

Na powyższym zrzucie ekranu możemy zrozumieć przepływ wykonywania zadań w Hive z Hadoop

Przepływ danych w gałęzi zachowuje się według następującego wzorca;

  1. Wykonywanie zapytania z interfejsu użytkownika (interfejsu użytkownika)
  2. Sterownik współdziała z kompilatorem w celu uzyskania planu. (Tutaj plan odnosi się do wykonania zapytania) i związane z nim zbieranie informacji o metadanych
  3. Kompilator tworzy plan zadania do wykonania. Kompilator komunikujący się ze sklepem Meta w celu pobrania żądania metadanych
  4. Magazyn metadanych wysyła informacje o metadanych z powrotem do kompilatora
  5. Kompilator komunikujący się ze Kierowcą z proponowanym planem wykonania zapytania
  6. Kierowca wysyłający plany wykonania do silnika wykonawczego
  7. Execution Engine (EE) działa jako pomost między Hive i Hadoop w celu przetworzenia zapytania. Do operacji DFS.
  • EE powinien najpierw skontaktować się z Name Node, a następnie z węzłami Data, aby uzyskać wartości przechowywane w tabelach.
  • EE pobierze żądane rekordy z węzłów danych. Rzeczywiste dane tabel znajdują się tylko w węźle danych. Podczas gdy z Name Node pobiera tylko informacje o metadanych dla zapytania.
  • Zbiera rzeczywiste dane z węzłów danych związanych z wymienionym zapytaniem
  • Silnik wykonawczy (EE) komunikuje się dwukierunkowo z magazynem Meta obecnym w Hive w celu wykonania operacji DDL (Data Definition Language). Tutaj wykonywane są operacje DDL, takie jak CREATE, DROP i ALTERING tabele i bazy danych. Magazyn meta będzie przechowywać tylko informacje o nazwie bazy danych, nazwach tabel i nazwach kolumn. Pobierze dane związane z wymienionym zapytaniem.
  • Silnik wykonawczy (EE) z kolei komunikuje się z demonami Hadoop, takimi jak węzeł nazwy, węzły danych i moduł śledzenia zadań, aby wykonać zapytanie w systemie plików Hadoop
  1. Pobieranie wyników ze sterownika
  2. Wysyłanie wyników do silnika wykonawczego. Po pobraniu wyników z węzłów danych do EE, wyniki zostaną przesłane z powrotem do sterownika i do interfejsu użytkownika (interfejs użytkownika)

Hive Stały kontakt z systemem plików Hadoop i jego demonami za pośrednictwem silnika wykonywania. Kropkowana strzałka na diagramie przepływu zadań przedstawia komunikację silnika wykonania z demonami Hadoop.

Różne tryby ula

Hive może działać w dwóch trybach w zależności od rozmiaru węzłów danych na platformie Hadoop.

Te tryby to:

  • Tryb lokalny
  • Tryb redukcji mapy

Kiedy używać trybu lokalnego:

  • Jeśli Hadoop jest zainstalowany w trybie pseudo z jednym węzłem danych, w tym trybie używamy Hive
  • Jeśli rozmiar danych jest mniejszy lub ograniczony do jednej maszyny lokalnej, możemy skorzystać z tego trybu
  • Przetwarzanie będzie bardzo szybkie na mniejszych zestawach danych obecnych na komputerze lokalnym

Kiedy używać trybu zmniejszania mapy:

  • Jeśli Hadoop ma wiele węzłów danych, a dane są rozproszone w różnych węzłach, w tym trybie używamy Hive
  • Będzie działać na dużej ilości zestawów danych i zapytań, które będą wykonywane równolegle
  • W tym trybie można uzyskać przetwarzanie dużych zbiorów danych z lepszą wydajnością

W Hive możemy ustawić tę właściwość, aby wspomnieć, który tryb Hive może działać? Domyślnie działa w trybie zmniejszania mapy, aw trybie lokalnym możesz mieć następujące ustawienia.

Hive do pracy w trybie lokalnym

SET mapred.job.tracker = local;

Od wersji Hive 0.7 obsługuje tryb automatycznego uruchamiania mapowania zadań w trybie lokalnym.

Co to jest Hive Server2 (HS2)?

HiveServer2 (HS2) to interfejs serwera, który wykonuje następujące funkcje:

  • Umożliwia klientom zdalnym wykonywanie zapytań względem Hive
  • Pobierz wyniki wspomnianych zapytań

Od najnowszej wersji ma kilka zaawansowanych funkcji opartych na Thrift RPC, takich jak;

  • Współbieżność wielu klientów
  • Poświadczenie

Podsumowanie:

Hive to narzędzie ETL i hurtowni danych znajdujące się na szczycie ekosystemu Hadoop i używane do przetwarzania ustrukturyzowanych i półstrukturalnych danych.

  • Hive to baza danych obecna w ekosystemie Hadoop, która wykonuje operacje DDL i DML oraz zapewnia elastyczny język zapytań, taki jak HQL, w celu lepszego wykonywania zapytań i przetwarzania danych.
  • Zapewnia tak wiele funkcji w porównaniu do RDMS, który ma pewne ograniczenia.

Logika specyficzna dla użytkownika w celu spełnienia wymagań klienta.

  • Zapewnia możliwość pisania i wdrażania niestandardowych zdefiniowanych skryptów i funkcji zdefiniowanych przez użytkownika.
  • Ponadto zapewnia partycje i zasobniki do logiki specyficznej dla pamięci masowej.