În acest tutorial, veți învăța-
- Ce este Hive?
- Arhitectura stupului
- Diferite moduri de stup
- Ce este Hive Server2 (HS2)?
Ce este Hive?
Hive este un instrument de stocare a datelor și ETL dezvoltat deasupra sistemului de fișiere distribuite Hadoop (HDFS). Hive face munca ușoară pentru efectuarea de operațiuni precum
- Incapsularea datelor
- Interogări ad-hoc
- Analiza seturilor de date imense
Caracteristici importante ale stupului
- În Hive, tabelele și bazele de date sunt create mai întâi și apoi datele sunt încărcate în aceste tabele.
- Hive ca depozit de date conceput pentru gestionarea și interogarea numai a datelor structurate stocate în tabele.
- În timp ce se ocupă de date structurate, Map Reduce nu are caracteristici de optimizare și utilizare precum UDF-urile, dar cadrul Hive are. Optimizarea interogării se referă la un mod eficient de executare a interogării în termeni de performanță.
- Limbajul inspirat din SQL al lui Hive separă utilizatorul de complexitatea programării Map Reduce. Reutilizează concepte familiare din lumea bazelor de date relaționale, cum ar fi tabele, rânduri, coloane și schemă, etc. pentru ușurarea învățării.
- Programarea Hadoop funcționează pe fișiere plate. Deci, Hive poate utiliza structuri de directoare pentru a „partiționa” datele pentru a îmbunătăți performanța la anumite interogări.
- O componentă nouă și importantă a Hive, adică Metastore, utilizată pentru stocarea informațiilor despre schemă. Acest Metastore rezidă de obicei într-o bază de date relațională. Putem interacționa cu Hive folosind metode precum
- Web GUI
- Interfața Java Database Connectivity (JDBC)
- Cele mai multe interacțiuni tind să aibă loc printr-o interfață de linie de comandă (CLI). Hive oferă un CLI pentru a scrie interogări Hive folosind Hive Query Language (HQL)
- În general, sintaxa HQL este similară cu sintaxa SQL cu care sunt familiarizați majoritatea analiștilor de date. Interogarea mostră de mai jos afișează toate înregistrările prezente în numele tabelului menționat.
- Exemplu de interogare : Selectați * din
- Exemplu de interogare : Selectați * din
- Hive acceptă patru formate de fișiere, acestea fiind TEXTFILE, SEQUENCEFILE, ORC și RCFILE (Record Columnar File).
- Pentru stocarea metadatelor cu un singur utilizator, Hive folosește baza de date derby, iar pentru Metadatele utilizatorului multiplu sau cazul de metadate partajat Hive folosește MYSQL
Pentru configurarea MySQL ca bază de date și pentru stocarea informațiilor despre meta-date verificați Tutorialul „Instalarea și configurarea HIVE și MYSQL”
Unele dintre punctele cheie despre Hive:
- Diferența majoră între HQL și SQL este că interogarea Hive se execută mai degrabă pe infrastructura Hadoop decât pe baza de date tradițională.
- Execuția interogării Hive va fi ca o serie de locuri de muncă reduse automat generate.
- Hive acceptă partițiile și conceptele de pachete pentru recuperarea ușoară a datelor atunci când clientul execută interogarea.
- Hive acceptă UDF specifice (funcții definite de utilizator) pentru curățarea datelor, filtrare etc. În conformitate cu cerințele programatorilor, se pot defini UDF-uri Hive.
Hive vs baze de date relaționale: -
Prin utilizarea Hive, putem efectua unele funcționalități deosebite care nu sunt realizate în bazele de date relaționale. Pentru o cantitate imensă de date care se află în peta-octeți, este important să le interogați și să obțineți rezultate în câteva secunde. Și Hive face acest lucru destul de eficient, procesează rapid interogările și produce rezultate în timpul secundului.
Să vedem acum ce face Hive atât de rapid.
Unele diferențe cheie între Hive și bazele de date relaționale sunt următoarele;
Bazele de date relaționale sunt „ Schema pe CITIT și Schemă pe Scriere ”. Mai întâi creați un tabel, apoi introduceți date în tabelul respectiv. Pe tabelele de baze de date relaționale, pot fi efectuate funcții precum inserții, actualizări și modificări.
Hive este „ Schema numai pentru CITIRE ”. Deci, funcții precum actualizarea, modificările etc. nu funcționează cu acest lucru. Deoarece interogarea Hive într-un cluster tipic rulează pe mai multe noduri de date. Deci, nu este posibil să actualizați și să modificați datele pe mai multe noduri (versiuni Hive sub 0,13)
De asemenea, Hive acceptă modelul „ CITEȘTE MULTE SCRIVE O dată ”. Ceea ce înseamnă că, după inserarea tabelului, putem actualiza tabelul în cele mai recente versiuni Hive.
NOTĂ : Cu toate acestea, noua versiune a Hive vine cu caracteristici actualizate. Versiunile Hive (Hive 0.14) oferă opțiuni de actualizare și ștergere ca funcții noi
Arhitectura stupului
Captura de ecran de mai sus explică în detaliu arhitectura Apache Hive
Stupul constă în principal din 3 piese de bază
- Clienți Hive
- Servicii de stup
- Stocare și calcul de stup
Clienți Hive:
Hive oferă diferite drivere pentru comunicarea cu un alt tip de aplicații. Pentru aplicațiile bazate pe Thrift, acesta va oferi clientului Thrift pentru comunicare.
Pentru aplicațiile legate de Java, acesta oferă drivere JDBC. În afară de orice tip de aplicație, sunt furnizate driverele ODBC. La rândul lor, acești clienți și șoferi comunică din nou cu serverul Hive în serviciile Hive.
Servicii de stup:
Interacțiunile clienților cu Hive pot fi efectuate prin intermediul serviciilor Hive. Dacă clientul dorește să efectueze orice operațiuni legate de interogare în Hive, trebuie să comunice prin Hive Services.
CLI este interfața liniei de comandă care acționează ca serviciu Hive pentru operațiuni DDL (Limbaj de definire a datelor). Toți driverele comunică cu serverul Hive și cu driverul principal din serviciile Hive, așa cum se arată în diagrama de arhitectură de mai sus.
Driverul prezent în serviciile Hive reprezintă driverul principal și comunică toate tipurile de aplicații JDBC, ODBC și alte aplicații specifice clientului. Driverul va procesa aceste solicitări de la diferite aplicații la sistemele meta store și de teren pentru procesare ulterioară.
Stocarea și calculul stupului:
Serviciile Hive, cum ar fi Meta Store, sistemul de fișiere și Job Client, la rândul lor comunică cu stocarea Hive și efectuează următoarele acțiuni
- Informațiile despre metadate ale tabelelor create în Hive sunt stocate în Hive „Baza de date de stocare Meta”.
- Rezultatele interogărilor și datele încărcate în tabele vor fi stocate în cluster Hadoop pe HDFS.
Fluxul de executare a postului:
Din captura de ecran de mai sus putem înțelege fluxul de execuție a jobului în Hive cu Hadoop
Fluxul de date din Hive se comportă în următorul model;
- Executarea interogării din interfața de utilizare (interfață utilizator)
- Șoferul interacționează cu compilatorul pentru a obține planul. (Aici planul se referă la executarea interogării) proces și colectarea informațiilor aferente metadatelor sale
- Compilatorul creează planul pentru executarea unui job. Compilatorul comunică cu magazinul Meta pentru a primi cererea de metadate
- Meta store trimite informațiile despre metadate înapoi către compilator
- Compilatorul comunică cu Driver cu planul propus pentru a executa interogarea
- Driver Trimite planuri de execuție către motorul Execution
- Execution Engine (EE) acționează ca o punte între Hive și Hadoop pentru a procesa interogarea. Pentru operațiuni DFS.
- EE ar trebui mai întâi să contacteze Name Node și apoi la nodurile de date pentru a obține valorile stocate în tabele.
- EE va prelua înregistrările dorite de la nodurile de date. Datele reale ale tabelelor se află numai în nodul de date. În timp ce din Name Node preluează doar informațiile despre metadate pentru interogare.
- Colectează date reale de la nodurile de date legate de interogarea menționată
- Execution Engine (EE) comunică bidirecțional cu magazinul Meta prezent în Hive pentru a efectua operații DDL (Data Definition Language). Aici se fac operații DDL precum CREATE, DROP și ALTERING tabele și baze de date. Meta store va stoca informații despre numele bazei de date, numele tabelelor și numele coloanelor. Va prelua date referitoare la interogarea menționată.
- La rândul său, Execution Engine (EE) comunică cu daemonii Hadoop, cum ar fi nodul Nume, nodurile de date și urmărirea lucrărilor, pentru a executa interogarea deasupra sistemului de fișiere Hadoop
- Preluarea rezultatelor de la șofer
- Trimiterea rezultatelor la motorul Execution. Odată ce rezultatele au fost preluate de la nodurile de date către EE, acesta va trimite rezultatele înapoi către driver și către UI (front end)
Hive Continuă contactul cu sistemul de fișiere Hadoop și demonii acestuia prin intermediul motorului Execution. Săgeata punctată din diagrama de flux Job arată comunicarea motorului de execuție cu daonii Hadoop.
Diferite moduri de stup
Hive poate funcționa în două moduri, în funcție de dimensiunea nodurilor de date din Hadoop.
Aceste moduri sunt,
- Mod local
- Mod reducere hartă
Când utilizați modul local:
- Dacă Hadoop este instalat în mod pseudo cu un singur nod de date, vom folosi Hive în acest mod
- Dacă dimensiunea datelor este mai mică în termen, limitată la o singură mașină locală, putem folosi acest mod
- Procesarea va fi foarte rapidă pe seturi de date mai mici prezente în mașina locală
Când utilizați modul de reducere a hărții:
- Dacă Hadoop are mai multe noduri de date și datele sunt distribuite pe diferite noduri, vom folosi Hive în acest mod
- Acesta va efectua o cantitate mare de seturi de date și interogarea va fi executată în mod paralel
- Procesarea seturilor mari de date cu performanțe mai bune poate fi realizată prin acest mod
În Hive, putem seta această proprietate pentru a menționa ce mod poate funcționa Hive? În mod implicit, funcționează în modul Reducere hartă și pentru modul local puteți avea următoarea setare.
Hive pentru a lucra în modul local setat
SET mapred.job.tracker = local;
De la versiunea Hive 0.7 acceptă un mod pentru a rula harta reduce automat lucrările în modul local.
Ce este Hive Server2 (HS2)?
HiveServer2 (HS2) este o interfață de server care îndeplinește următoarele funcții:
- Permite clienților la distanță să execute interogări împotriva Hive
- Obțineți rezultatele interogărilor menționate
Din ultima versiune are câteva funcții avansate, bazate pe Thrift RPC, cum ar fi;
- Concurență multi-client
- Autentificare
Rezumat:
Hive este un instrument de stocare a datelor și ETL pe partea de sus a ecosistemului Hadoop și utilizat pentru procesarea datelor structurate și semi-structurate.
- Hive este o bază de date prezentă în ecosistemul Hadoop care efectuează operațiuni DDL și DML și oferă un limbaj de interogare flexibil, cum ar fi HQL, pentru o mai bună interogare și procesare a datelor.
- Oferă atât de multe caracteristici în comparație cu RDMS care are anumite limitări.
Pentru ca logica specifică utilizatorului să îndeplinească cerințele clientului.
- Oferă opțiunea de scriere și implementare a scripturilor personalizate definite și a funcțiilor definite de utilizator.
- În plus, oferă partiții și găleți pentru stocarea unor logici specifice.