Co to jest ul? Architectura i tryby

โšก Inteligentne podsumowanie

Hive to warstwa SQL ekosystemu Hadoop, ktรณra przeksztaล‚ca polecenia HiveQL w rozproszone zadania odczytujฤ…ce ustrukturyzowane dane znajdujฤ…ce siฤ™ juลผ w systemie HDFS. Dziฤ™ki temu analitycy mogฤ… wykonywaฤ‡ zapytania do tabel petabajtowych bez koniecznoล›ci samodzielnego pisania kodu MapReduce.

  • ๐Ÿ Co to jest: Narzฤ™dzie ETL i magazynowania danych, ktรณre dodaje tabele, wiersze i kolumny do plikรณw przechowywanych w systemie HDFS.
  • ๐Ÿ—‚๏ธ. Metastore: Informacje o schemacie znajdujฤ… siฤ™ w relacyjnym metamagazynie obsล‚ugiwanym przez Derby dla jednego uลผytkownika i przez MySQL w celu zapewnienia dostฤ™pu wspรณล‚dzielonego.
  • ๐Ÿ†š W przypadku systemu RDBMS: Hive weryfikuje schemat podczas odczytu, skaluje siฤ™ poziomo i preferuje duลผe skanowania nad aktualizacjami na poziomie wiersza, ktรณrymi zajmuje siฤ™ baza danych.
  • ๐Ÿ—๏ธ. Trzy warstwy: Klienci, usล‚ugi i pamiฤ™ฤ‡ masowa tworzฤ… architekturฤ™, przy czym sterownik koordynuje kompilator, metamagazyn i silnik wykonawczy.
  • ๐Ÿ”€ Dwa tryby: Tryb lokalny jest przeznaczony dla pojedynczego wฤ™zล‚a danych i maล‚ych plikรณw, natomiast tryb MapReduce rozkล‚ada wykonywanie na klaster wielowฤ™zล‚owy.
  • ๐Ÿ”Œ HiveServer2: Interfejs HS2 oparty na platformie Thrift dodaje wspรณล‚bieลผnoล›ฤ‡ obsล‚ugi wielu klientรณw i uwierzytelnianie dla sesji zdalnych.

Architektura i tryby Hive

Co to jest ul?

Hive to narzฤ™dzie do ETL i magazynowania danych opracowane w oparciu o rozproszony system plikรณw Hadoop (HDFS). Hive uล‚atwia wykonywanie operacji takich jak:

  • Enkapsulacja danych
  • Zapytania doraลบne
  • Analiza ogromnych zbiorรณw danych

Waลผne cechy Hive

Poniลผsze punkty wyjaล›niajฤ…, co odrรณลผnia Hive od zwykล‚ego programu MapReduce.

  • W Hive najpierw tworzone sฤ… tabele i bazy danych, a nastฤ™pnie dane sฤ… ล‚adowane do tych tabel.
  • Hive to magazyn danych przeznaczony do zarzฤ…dzania i wykonywania zapytaล„ wyล‚ฤ…cznie w zakresie danych strukturalnych przechowywanych w tabelach.
  • W przypadku danych strukturalnych MapReduce nie oferuje funkcji optymalizacji i uลผytecznoล›ci, takich jak UDF, ale framework Hive je posiada. Optymalizacja zapytaล„ odnosi siฤ™ do efektywnego sposobu wykonywania zapytaล„ pod wzglฤ™dem wydajnoล›ci.
  • Zainspirowany SQL-em jฤ™zyk Hive oddziela uลผytkownika od zล‚oลผonoล›ci programowania MapReduce. Wykorzystuje on znane koncepcje ze ล›wiata relacyjnych baz danych, takie jak tabele, wiersze, kolumny i schematy, uล‚atwiajฤ…c naukฤ™.
  • Programowanie Hadoopa dziaล‚a na pล‚askich plikach. Dziฤ™ki temu Hive moลผe uลผywaฤ‡ struktur katalogowych do "przegroda" dane w celu poprawy wydajnoล›ci niektรณrych zapytaล„.
  • Waลผnym elementem Hive jest metamagazyn, sล‚uลผฤ…cy do przechowywania informacji o schemacie. Ten metamagazyn zazwyczaj znajduje siฤ™ w relacyjnej bazie danych. Moลผemy wchodziฤ‡ w interakcjฤ™ z Hive za pomocฤ… metod takich jak:
    • GUI sieci
    • Java Interfejs ล‚ฤ…cznoล›ci z bazฤ… danych (JDBC).
  • Wiฤ™kszoล›ฤ‡ interakcji odbywa siฤ™ za poล›rednictwem interfejsu wiersza poleceล„ (CLI). Hive udostฤ™pnia interfejs CLI do pisania zapytaล„ Hive za pomocฤ… jฤ™zyka HQL (Hive Query Language).
  • Ogรณlnie skล‚adnia HQL jest podobna do SQL Skล‚adnia, z ktรณrฤ… zna siฤ™ wiฤ™kszoล›ฤ‡ analitykรณw danych. Poniลผsze przykล‚adowe zapytanie wyล›wietla wszystkie rekordy obecne w podanej nazwie tabeli.
    • Przykล‚adowe zapytanie : Wybierz spoล›rรณd
  • Hive obsล‚uguje cztery formaty plikรณw, sฤ… to: PLIK TEKSTOWY, PLIK SEKWENCYJNY, ORC i PLIK RC (Nagraj plik kolumnowy).
  • Do przechowywania metadanych pojedynczego uลผytkownika Hive korzysta z bazy danych Derby, a do przechowywania metadanych wielu uลผytkownikรณw lub wspรณล‚dzielonych Hive korzysta z bazy danych Derby. MySQL.

Do ustawienia MySQL jako bazฤ™ danych i do przechowywania informacji metadanych, sprawdลบ samouczek na konfigurowanie metamagazynu Hive za pomocฤ… MySQL, ktรณry jest kontynuacjฤ… Przewodnik po instalacji Hive.

Niektรณre kluczowe punkty dotyczฤ…ce Hive:

  • Gล‚รณwnฤ… rรณลผnicฤ… pomiฤ™dzy HQL i SQL jest to, ลผe zapytanie Hive jest wykonywane w infrastrukturze Hadoop, a nie w tradycyjnej bazie danych.
  • Wykonywanie zapytaล„ Hive to seria automatycznie generowanych MapaReduce Oferty pracy.
  • Hive obsล‚uguje koncepcje partycjonowania i kontenerรณw, aby uล‚atwiฤ‡ pobieranie danych podczas wykonywania zapytania przez klienta.
  • Hive obsล‚uguje niestandardowe UDF (funkcje zdefiniowane przez uลผytkownika) Do oczyszczania, filtrowania i podobnych zadaล„ danych. Zgodnie z wymaganiami programistรณw, moลผna zdefiniowaฤ‡ funkcje UDF Hive.

Hive kontra relacyjne bazy danych

Hive wykonuje funkcje, ktรณrych nie potrafiฤ… relacyjne bazy danych. Gdy dane liczฤ… siฤ™ w petabajtach, zwracanie wynikรณw w ciฤ…gu sekund ma znaczenie, a Hive robi to sprawnie. Oto najwaลผniejsze rรณลผnice.

Bazy danych relacyjne sฤ… โ€žschemat przy odczycie i schemat przy zapisieโ€: Najpierw tworzona jest tabela, a nastฤ™pnie wstawiane sฤ… do niej dane. W tabelach relacyjnych baz danych moลผna wykonywaฤ‡ takie funkcje, jak wstawianie, aktualizowanie i modyfikowanie.

Ul jest โ€žschemat tylko do odczytuโ€Funkcje takie jak aktualizacja i modyfikacja nie dziaล‚aล‚y we wczesnych wersjach, poniewaลผ zapytanie Hive w typowym klastrze jest uruchamiane na wielu wฤ™zล‚ach DataNode, co uniemoลผliwiaล‚o aktualizowanie i modyfikowanie danych na wielu wฤ™zล‚ach (wersje Hive starsze niลผ 0.13).

Hive obsล‚uguje rรณwnieลผ โ€žczytaj wiele, pisz razโ€ wzรณr, dziฤ™ki czemu w nowszych wersjach tabelฤ™ moลผna uaktualniฤ‡ po wstawieniu.

UWAGA: Nowsze wersje Hive zawierajฤ… ulepszone funkcje. W Hive 0.14 wprowadzono nowe funkcje UPDATE i DELETE, a pรณลบniejsze wersje dodaล‚y peล‚nฤ… obsล‚ugฤ™ transakcji ACID.

Poniลผsza tabela podsumowuje porรณwnanie.

WYGLฤ„D Relacyjna baza danych Ula Apache
Walidacja schematu Na piล›mie W trakcie czytania
Typowa objฤ™toล›ฤ‡ danych Gigabajty na terabajty Terabajty na petabajty
Obciฤ…ลผenie pracฤ… Odczyty i zapisy OLTP na poziomie wiersza Peล‚na analiza wsadowa
Jฤ™zyk zapytaล„ SQL HQL, dialekt inspirowany SQL
Egzekucja Silnik bazy danych Rozproszone zadania klastra

Ul Architektura

Poniลผszy diagram wyjaล›nia Apache Architektura Hive w szczegรณล‚ach.

Diagram architektury Apache Hive przedstawiajฤ…cy klientรณw, usล‚ugi, pamiฤ™ฤ‡ masowฤ… i przetwarzanie

Hive skล‚ada siฤ™ z 3 gล‚รณwnych czฤ™ล›ci:

  1. Klienci Hive
  2. Usล‚ugi Hive
  3. Przechowywanie i przetwarzanie w Hive

Klienci Hive

Hive oferuje rรณลผne sterowniki do komunikacji z rรณลผnymi typami aplikacji. W przypadku aplikacji opartych na Thrift, Hive udostฤ™pnia klienta Thrift do komunikacji.

Dla litu szacuje siฤ™ Java Powiฤ…zane aplikacje udostฤ™pniajฤ… sterowniki JDBC. Do kaลผdego innego typu aplikacji udostฤ™pnia sterowniki ODBC. Ci klienci i sterowniki z kolei komunikujฤ… siฤ™ z serwerem Hive w usล‚ugach Hive.

Usล‚ugi ula

Interakcje klienta z Hive odbywajฤ… siฤ™ za poล›rednictwem usล‚ug Hive. Jeล›li klient chce wykonaฤ‡ jakฤ…kolwiek operacjฤ™ zwiฤ…zanฤ… z zapytaniem w Hive, musi siฤ™ komunikowaฤ‡ za poล›rednictwem usล‚ug Hive.

Interfejs wiersza poleceล„ dziaล‚a jak usล‚uga Hive dla operacji DDL. Wszystkie sterowniki komunikujฤ… siฤ™ z serwerem Hive i sterownikiem gล‚รณwnym w usล‚ugach Hive, jak pokazano na powyลผszym diagramie architektury.

Sterownik w usล‚ugach Hive jest sterownikiem gล‚รณwnym: komunikuje siฤ™ z JDBC, ODBC i innymi aplikacjami specyficznymi dla klienta, a nastฤ™pnie przekazuje ich ลผฤ…dania do metamagazynu i systemu plikรณw w celu dalszego przetwarzania.

Pamiฤ™ฤ‡ masowa i komputery Hive

Usล‚ugi Hive, takie jak metamagazyn, system plikรณw i klient zadaล„, komunikujฤ… siฤ™ z magazynem Hive i wykonujฤ… nastฤ™pujฤ…ce czynnoล›ci:

  • Informacje metadane dotyczฤ…ce tabel utworzonych w Hive sฤ… przechowywane w Hive baza danych metastore.
  • Wyniki zapytania i dane zaล‚adowane do tabel sฤ… przechowywane w klastrze Hadoop na HDFS.

Przepล‚yw wykonywania zadaล„

Poniลผszy diagram tracto jedno zapytanie z interfejsu uลผytkownika do DataNodes i z powrotem.

Schemat przepล‚ywu wykonywania zadaล„ Hive tracwysyล‚anie zapytania z interfejsu uลผytkownika do wฤ™zล‚รณw danych

Z powyลผszego diagramu moลผemy zrozumieฤ‡ przepล‚yw wykonywania zadaล„ w Hive z Hadoop. Przepล‚yw danych w Hive przebiega wedล‚ug nastฤ™pujฤ…cego schematu.

  1. Wykonywanie zapytania z poziomu interfejsu uลผytkownika (UI)
  2. Sterownik wspรณล‚pracuje z kompilatorem w celu uzyskania planu. (Tutaj plan odnosi siฤ™ do procesu wykonywania zapytania i zwiฤ…zanego z nim gromadzenia metadanych.)
  3. Kompilator tworzy plan wykonania zadania. Kompilator komunikuje siฤ™ z metamagazynem, aby pobraฤ‡ ลผฤ…danie metadanych.
  4. Metamagazyn wysyล‚a informacje o metadanych z powrotem do kompilatora
  5. Kompilator komunikuje siฤ™ ze sterownikiem, podajฤ…c proponowany plan wykonania zapytania
  6. Sterownik wysyล‚a plany wykonania do silnika wykonawczego
  7. Silnik wykonawczy (EE) dziaล‚a jako pomost miฤ™dzy Hive i Hadoop, przetwarzajฤ…c zapytanie, w tym operacje DFS:
    • EE najpierw kontaktuje siฤ™ z NameNode, a nastฤ™pnie z DataNode, aby pobraฤ‡ wartoล›ci zapisane w tabelach.
    • EE pobiera ลผฤ…dane rekordy z wฤ™zล‚รณw danych. Rzeczywiste dane tabelaryczne znajdujฤ… siฤ™ tylko w wฤ™zล‚ach danych; z wฤ™zล‚a nazw pobiera tylko metadane dla zapytania.
    • Gromadzi rzeczywiste dane z wฤ™zล‚รณw danych powiฤ…zanych ze wspomnianym zapytaniem
    • EE komunikuje siฤ™ dwukierunkowo z metamagazynem w celu wykonywania operacji DDL (jฤ™zyka definicji danych), takich jak: UTWร“RZ, USUลƒ I ZMIEลƒ w tabelach i bazach danych. Metamagazyn przechowuje tylko nazwy baz danych, tabel i kolumn.
    • EE z kolei komunikuje siฤ™ z demonami Hadoop, takimi jak NameNode, DataNodes i job tracker do wykonania zapytania na 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, silnik wysyล‚a je z powrotem do sterownika i do interfejsu uลผytkownika (front-end).

Hive utrzymuje kontakt z systemem plikรณw Hadoop i jego demonami za poล›rednictwem silnika wykonawczego. Przerywana strzaล‚ka na diagramie pokazuje tฤ™ komunikacjฤ™.

Rรณลผne tryby Hive

Hive moลผe dziaล‚aฤ‡ w dwรณch trybach, w zaleลผnoล›ci od rozmiaru wฤ™zล‚รณw danych w Hadoop. Tryby te to:

  • Tryb lokalny
  • Tryb MapReduce

Kiedy uลผywaฤ‡ trybu lokalnego

  • Jeล›li Hadoop jest zainstalowany w trybie pseudorozproszonym z jednym wฤ™zล‚em danych, w tym trybie uลผywamy Hive
  • Jeล›li rozmiar danych jest na tyle maล‚y, ลผe moลผna go ograniczyฤ‡ do jednej lokalnej maszyny, moลผemy uลผyฤ‡ tego trybu
  • Przetwarzanie bฤ™dzie bardzo szybkie w przypadku mniejszych zestawรณw danych znajdujฤ…cych siฤ™ na komputerze lokalnym

Kiedy uลผywaฤ‡ trybu MapReduce

  • Jeล›li Hadoop ma wiele wฤ™zล‚รณw danych i dane sฤ… rozproszone pomiฤ™dzy rรณลผnymi wฤ™zล‚ami, w tym trybie uลผywamy Hive
  • Dziaล‚a na duลผych iloล›ciach danych, a zapytanie jest wykonywane rรณwnolegle
  • W tym trybie moลผna uzyskaฤ‡ lepszฤ… wydajnoล›ฤ‡ przetwarzania duลผych zbiorรณw danych

W Hive moลผemy ustawiฤ‡ wล‚aล›ciwoล›ฤ‡ okreล›lajฤ…cฤ… tryb dziaล‚ania Hive. Domyล›lnie dziaล‚a w trybie MapReduce, a w trybie lokalnym moลผna uลผyฤ‡ nastฤ™pujฤ…cego ustawienia:

SET mapred.job.tracker=local;

Od wersji Hive 0.7 obsล‚uguje tryb, ktรณry automatycznie uruchamia zadania MapReduce w trybie lokalnym. W Hive 4.x domyล›lnym silnikiem jest Apache Tez, wiฤ™c ta wล‚aล›ciwoล›ฤ‡ ma zastosowanie do starszej ล›cieลผki MapReduce.

Co to jest Hive Server2 (HS2)?

HiveServer2 (HS2) to interfejs serwerowy, ktรณry wykonuje nastฤ™pujฤ…ce funkcje:

  • Umoลผliwia zdalnym klientom wykonywanie zapytaล„ wzglฤ™dem Hive
  • Pobiera wyniki tych zapytaล„

Obecne wersje dodajฤ… zaawansowane funkcje oparte na Thrift RPC, takie jak:

  • Wspรณล‚bieลผnoล›ฤ‡ wielu klientรณw
  • Uwierzytelnianie

HS2 stoi za Beeline i kaลผdฤ… sesjฤ… JDBC lub ODBC, dlatego zastฤ…piล‚ interfejs wiersza poleceล„ Hive dla pojedynczego uลผytkownika. Operatorzy HiveQL i wbudowane funkcje odniesienie jest naturalnym nastฤ™pnym krokiem.

FAQ

Hive to warstwa zapytaล„ wsadowych, ktรณra skanuje duลผe tabele za pomocฤ… rozproszonych zadaล„. HBase to baza danych NoSQL stworzona do losowych odczytรณw i zapisรณw pojedynczych wierszy w milisekundach. Rozwiฤ…zujฤ… one odwrotne wzorce dostฤ™pu i czฤ™sto dziaล‚ajฤ… rรณwnolegle.

Hive dziaล‚a na platformach MapReduce, Apache Tez lub Apache Spark. MapReduce jest przestarzaล‚y, a Hive 4.x domyล›lnie uลผywa Tez, ktรณry przechowuje wyniki poล›rednie w pamiฤ™ci zamiast zapisywaฤ‡ je na dysku pomiฤ™dzy etapami.

Zarzฤ…dzana tabela daje Hive wล‚asnoล›ฤ‡ metadanych i plikรณw, wiฤ™c usuล„ping Usuwa dane z katalogu magazynu. Tabela zewnฤ™trzna przechowuje tylko metadane i usuwaping pozostawia podstawowe pliki nietkniฤ™te.

Wyuczone modele kosztรณw przekazujฤ… statystyki wykonania z powrotem do planisty, aby przewidywaฤ‡ wolumen skanowania, kolejnoล›ฤ‡ doล‚ฤ…czania i przycinanie partycji dokล‚adniej niลผ statyczne szacunki. Platformy chmurowe generujฤ… te same sygnaล‚y, co zalecenia dotyczฤ…ce kompaktowania i ukล‚adu partycji.

Copilot tworzy szkice poล‚ฤ…czeล„ HiveQL, funkcji okien i Java Szkielety UDF z komentarza, co skraca czas pracy nad szablonami. Nazwy kolumn, klucze partycji i typy danych nadal wymagajฤ… wczeล›niejszego sprawdzenia w rzeczywistym metamagazynie.

Tak. Hive 0.14 dodaล‚ funkcje UPDATE i DELETE, a pรณลบniejsze wersje zapewniล‚y peล‚nฤ… obsล‚ugฤ™ ACID dla tabel transakcyjnych. Hive 4.x rozszerza tฤ™ funkcjonalnoล›ฤ‡ o tabele Apache Iceberg z izolacjฤ… migawek i ewolucjฤ… schematu.

Wszystkie trzy udostฤ™pniajฤ… SQL dla tych samych plikรณw. Hive preferuje dล‚ugie zadania wsadowe i jest wล‚aล›cicielem metadanych, ktรณre odczytywane sฤ… przez pozostaล‚e. Spark Jฤ™zyk SQL nadaje siฤ™ do mieszanych procesรณw; Trino obsล‚uguje interaktywne zapytania obejmujฤ…ce wiele ลบrรณdeล‚.

Tak, gล‚รณwnie za poล›rednictwem Hive Metastore, ktรณry pozostaje standardem katalogowym SparkTrino, Presto i Flink czytajฤ…. Sam Hive nadal obsล‚uguje zaplanowane transformacje wsadowe i obciฤ…ลผenia magazynรณw.

Podsumuj ten post nastฤ™pujฤ…co: