Hive er et meget brugt Big Data Analytics-værktøj i branchen, og det er et fantastisk sted at starte, hvis du er ny til Big Data. Denne Apache Hive-lektion går gennem det grundlæggende i Apache Hive, hvorfor en bikube er nødvendig, dens funktioner og alt andet, du bør vide.
Lad os først forstå Hadoop-rammen, som Apache Hive er bygget på.
Apache Hadoop
Apache Hadoop er en gratis og open source platform til lagring og behandling af store datasæt, der spænder i størrelse fra gigabyte til petabyte. Hadoop gør det muligt at gruppere adskillige computere til at analysere enorme datasæt parallelt i stedet for at kræve en enkelt stor computer til at gemme og analysere dataene.
MapReduce og Hadoop Distributed File System er to af komponenterne:
- KortReducer – MapReduce er en parallel programmeringsteknik til håndtering af enorme mængder af organiserede, semistrukturerede og ustrukturerede data på råvarehardwareklynger.
- HDFS – HDFS (Hadoop Distributed File System) er en Hadoop-rammekomponent, der gemmer og behandler data. Det er et fejltolerant filsystem, der kører på standard hardware
Forskellige delprojekter (værktøjer) i Hadoop-økosystemet, herunder Sqoop, Pig og Hive, bruges til at hjælpe Hadoop-moduler.
- Hive – Hive er en ramme til at skrive scripts i SQL-stil, der udfører MapReduce-beregninger.
- Gris – Pig er et proceduremæssigt programmeringssprog, der kan bruges til at oprette et script til MapReduce-processer.
- Sqoop – Sqoop er et værktøj til at importere og eksportere data mellem HDFS og RDBMS.
Hvad er Apache Hive?
Apache Hive er en open source datalager program til at læse, skrive og administrere enorme datasæt, der er gemt direkte i Apache Hadoop Distributed File System (HDFS) eller andre datalagringssystemer som Apache HBase.
SQL-udviklere kan bruge Hive til at skabe Hive Query Language (HQL)-sætninger til dataforespørgsler og -analyse, der kan sammenlignes med almindelige SQL-sætninger. Det blev skabt for at gøre MapReduce-programmering nemmere ved at eliminere behovet for at lære og skrive lang Java-kode. I stedet kan du skrive dine forespørgsler i HQL, og Hive vil bygge kortet og reducere funktionerne for dig.
Den SQL-lignende grænseflade i Apache Hive er blevet guldstandarden til at udføre ad-hoc-søgninger, opsummere og analysere Hadoop-data. Når inkluderet i skyen computernetværk, denne løsning er særligt omkostningseffektiv og skalerbar, hvorfor mange firmaer, herunder Netflix og Amazon, fortsætter med at udvikle og forbedre Apache Hive.
Historie
I løbet af deres tid på Facebook, skabte Joydeep Sen Sarma og Ashish Thusoo Apache Hive. De erkendte begge, at for at få mest muligt ud af Hadoop, skulle de lave nogle ret komplicerede Java Map-Reduce-opgaver. De erkendte, at de ikke ville være i stand til at uddanne deres hurtigt voksende ingeniør- og analytiske teams i de færdigheder, de skulle bruge for at udnytte Hadoop på tværs af virksomheden. Ingeniører og analytikere brugte ofte SQL som brugergrænseflade.
Selvom SQL kunne opfylde de fleste analysebehov, havde udviklerne også til hensigt at inkorporere Hadoops programmerbarhed. Apache Hive opstod fra disse to mål: et SQL-baseret deklarativt sprog, der også gjorde det muligt for udviklere at bringe deres egne scripts og programmer ind, når SQL ikke var nok.
Det blev også udviklet til at holde centraliseret metadata (Hadoop-baseret) om alle datasættene i virksomheden for at gøre opbygningen af datadrevne organisationer nemmere.
Hvordan virker Apache Hive?
I en nøddeskal konverterer Apache Hive et inputprogram skrevet i HiveQL (SQL-lignende) sprog til en eller flere Java MapReduce-, Tez- eller Spark-opgaver. (Alle disse udførelsesmotorer er kompatible med Hadoop YARN.) Derefter arrangerer Apache Hive dataene i tabeller for Hadoop Distributed File System HDFS) og udfører opgaverne på en klynge for at få et svar.
data
Apache Hive-tabellerne er arrangeret på samme måde, som tabeller i en relationsdatabase er organiseret, med dataenheder, der varierer i størrelse fra større til mindre. Databaser er opbygget af tabeller, der er opdelt i divisioner, som yderligere er opdelt i buckets. HiveQL (Hive Query Language) bruges til at få adgang til dataene, som kan ændres eller tilføjes. Tabeldata serialiseres i hver database, og hver tabel har sit eget HDFS-bibliotek.
arkitektur
Nu vil vi tale om det vigtigste aspekt af Hive Architecture. Komponenterne i Apache Hive er som følger:
Metastore — Den holder styr på oplysninger om hver tabel, såsom dens struktur og placering. Partitionsmetadataene er ligeledes inkluderet i Hive. Dette gør det muligt for chaufføren at holde styr på fremskridtene for forskellige datasæt spredt ud over klyngen. Dataene gemmes i et konventionelt RDBMS-format. Hive-metadata er ekstremt vigtigt for chaufføren for at holde styr på dataene. Sikkerhedskopieringsserveren dublerer data regelmæssigt, så de kan gendannes i tilfælde af datatab.
Chauffør – HiveQL-sætninger modtages af en driver, der fungerer som en controller. Ved at etablere sessioner starter chaufføren udførelsen af erklæringen. Den holder styr på direktørens levetid og fremskridt. Under udførelsen af en HiveQL-sætning gemmer driveren de nødvendige metadata. Det fungerer også som et data- eller forespørgselsresultatindsamlingspunkt efter Reducer-processen.
compiler – Den udfører HiveQL-forespørgselskompileringen. Forespørgslen er nu konverteret til en eksekveringsplan. Opgaverne er listet i planen. Det inkluderer også de trin, som MapReduce skal tage for at opnå resultatet som oversat af forespørgslen. Forespørgslen konverteres til et abstrakt syntakstræ af Hives compiler (AST). Konverterer AST til en rettet acyklisk graf efter kontrol for kompatibilitet og kompileringstidsfejl (DAG).
Optimizer – Det optimerer DAG ved at udføre forskellige ændringer på udførelsesplanen. Den kombinerer transformationer for forbedret effektivitet, såsom at omdanne en pipeline af sammenføjninger til en enkelt sammenføjning. For at forbedre hastigheden kan optimeringsværktøjet opdele aktiviteter, såsom at anvende en transformation til data, før der udføres en reduktionshandling.
Executor – Eksekutøren kører opgaverne, når kompileringen og optimeringen er færdig. Jobbene er pipelinet af Executor.
CLI, UI og Thrift Server – Kommandolinjegrænsefladen (CLI) er en brugergrænseflade, der giver en ekstern bruger mulighed for at kommunikere med Hive. Hives sparsommelighedsserver, svarende til JDBC- eller ODBC-protokollerne, tillader eksterne klienter at kommunikere med Hive via et netværk.
Sikkerhed
Apache Hive er integreret med Hadoop-sikkerhed, som bruger Kerberos til klient-server gensidig godkendelse. HDFS dikterer tilladelser for nyligt genererede filer i Apache Hive, så du kan godkende af brugeren, gruppen og andre.
Nøglefunktioner
- Hive understøtter eksterne tabeller, som lader dig behandle data uden at gemme dem i HDFS.
- Det muliggør også datasegmentering på tabelniveau for at øge hastigheden.
- Apache Hive opfylder fremragende Hadoops behov for grænseflader på lavt niveau.
- Hive gør dataopsummering, forespørgsler og analyse nemmere.
- HiveQL kræver ingen programmeringsfærdigheder; en enkel forståelse af SQL-forespørgsler er tilstrækkelig.
- Vi kan også bruge Hive til at udføre ad hoc-forespørgsler til dataanalyse.
- Det er skalerbart, velkendt og tilpasningsdygtigt.
- HiveQL kræver ingen programmeringsfærdigheder; en enkel forståelse af SQL-forespørgsler er tilstrækkelig.
Fordele
Apache Hive giver mulighed for slutningen af dagen-rapporter, daglige transaktionsevalueringer, ad-hoc-søgninger og dataanalyse. Den omfattende indsigt fra Apache Hive giver betydelige konkurrencefordele og gør det lettere for dig at reagere på markedets krav.
Her er nogle af fordelene ved at have sådan information let tilgængelig:
- Brugervenlighed – Med dets SQL-lignende sprog er det nemt at forstå dataforespørgsler.
- Accelereret dataindsættelse — Fordi Apache Hive læser skemaet uden at bekræfte tabeltypen eller skemadefinitionen, skal data ikke læses, parses og serialiseres til disk i databasens interne format. I modsætning hertil skal data i en konventionel database valideres, hver gang de tilføjes.
- Overlegen skalerbarhed, fleksibilitet og omkostningseffektivitet – Fordi data er gemt i HDFS, kan Apache Hive rumme 100-vis af petabytes af data, hvilket gør det til en langt mere skalerbar mulighed end en typisk database. Apache Hive, som en cloud-baseret Hadoop-tjeneste, giver kunderne mulighed for hurtigt at dreje op og ned på virtuelle servere for at imødekomme skiftende arbejdsbelastninger.
- Omfattende arbejdskapacitet – Store datasæt kan håndtere op til 100,000 forespørgsler i timen.
Begrænsninger
- Generelt har Apache Hive-forespørgsler meget høj latenstid.
- Understøttelse af underforespørgsler er begrænset.
- Realtidsforespørgsler og ændringer på rækkeniveau er ikke tilgængelige i Apache Hive.
- Der er ingen støtte til materialiserede synspunkter.
- I hive understøttes opdaterings- og sletningshandlinger ikke.
- Ikke beregnet til OLTP (online overgangsproces).
Kom godt i gang med Apache Hive
Apache Hive er en stærk Hadoop-partner, der forenkler og strømliner dine arbejdsgange. For at få mest muligt ud af Apache Hive er sømløs integration afgørende. Det første skridt er at gå til hjemmeside.
1. Installation Hive fra en stabil udgivelse
Start med at downloade den seneste stabile udgivelse af Hive fra et af Apache-downloadspejlene (se Hive udgivelser). Tarballen skal derefter pakkes ud. Dette vil oprette en undermappe kaldet hive-xyz (hvor xyz er udgivelsesnummeret):
Indstil miljøvariablen HIVE_HOME til at pege på installationsmappen:
Tilføj endelig $HIVE_HOME/bin til din PATH
:
2. Running Hive
Hive bruger Hadoop, så:
- du skal have Hadoop på din vej ELLER
3. DLL-drift
Oprettelse af Hive-tabel
genererer en tabel ved navn pokes med to kolonner, hvoraf den første er et heltal og den anden er en streng.
Gennemse tabeller
Liste over alle tabellerne
Ændre og slippe tabeller
Tabelnavne kan ændres, og kolonner kan tilføjes eller erstattes:
Det er værd at bemærke, at REPLACE COLUMNS erstatter alle eksisterende kolonner, mens det kun ændrer tabellens struktur og ikke dataene. En indbygget SerDe skal bruges i tabellen. UDSKIFT KOLONNER kan også bruges til at fjerne kolonner fra skemaet i en tabel:
Nedkastningstabeller
Der er mange yderligere operationer og funktioner i Apache Hive, som du kan lære om ved at besøge den officielle hjemmeside.
Konklusion
Hive definition er en dataprogramgrænseflade til forespørgsel og analyse for enorme datasæt, der er bygget oven på Apache Hadoop. Professionelle vælger det frem for andre programmer, værktøjer og software, da det hovedsageligt er designet til Hive omfattende data og er nemt at bruge.
Håber denne tutorial hjælper dig med at kickstarte med Apache Hive og gøre dine arbejdsgange mere effektive. Fortæl os det i kommentarerne.
Giv en kommentar