Hva er Hive? Architecture & Modes

Hva er Hive?

Hive er et ETL- og datavarehusverktรธy utviklet pรฅ toppen av Hadoop Distributed File System (HDFS). Hive gjรธr jobben enkel for รฅ utfรธre operasjoner som

  • Datainnkapsling
  • Ad hoc-spรธrsmรฅl
  • Analyse av enorme datasett

Viktige egenskaper ved Hive

  • I Hive opprettes fรธrst tabeller og databaser, og deretter lastes data inn i disse tabellene.
  • Hive som datavarehus designet for รฅ administrere og spรธrre kun strukturerte data som er lagret i tabeller.
  • Mens han arbeider med strukturerte data, har ikke Map Reduce optimaliserings- og brukervennlighetsfunksjoner som UDF-er, men Hive-rammeverket har det. Spรธrringsoptimalisering refererer til en effektiv mรฅte รฅ utfรธre spรธrringer pรฅ nรฅr det gjelder ytelse.
  • Hives SQL-inspirerte sprรฅk skiller brukeren fra kompleksiteten til Map Reduce-programmering. Den gjenbruker kjente konsepter fra relasjonsdatabaseverdenen, som tabeller, rader, kolonner og skjemaer, etc. for enkel lรฆring.
  • Hadoops programmering fungerer pรฅ flate filer. Sรฅ Hive kan bruke katalogstrukturer til รฅ "partisjonere" data for รฅ forbedre ytelsen pรฅ visse spรธrringer.
  • En ny og viktig komponent i Hive dvs. Metastore som brukes til รฅ lagre skjemainformasjon. Denne Metastore ligger vanligvis i en relasjonsdatabase. Vi kan samhandle med Hive ved รฅ bruke metoder som
    • Web GUI
    • Java Database Connectivity (JDBC) grensesnitt
  • De fleste interaksjoner har en tendens til รฅ foregรฅ over et kommandolinjegrensesnitt (CLI). Hive tilbyr en CLI for รฅ skrive Hive-spรธrringer ved รฅ bruke Hive Query Language (HQL)
  • Generelt er HQL-syntaksen lik SQL syntaks som de fleste dataanalytikere er kjent med. Eksempelspรธrringen nedenfor viser alle postene som finnes i nevnte tabellnavn.
    • Eksempel pรฅ spรธrring : Velg * fra
  • Hive stรธtter fire filformater TEXTFILE, SEQUENCEFILE, ORC og RCFILE (Record Columnar File).
  • For lagring av metadata for รฉn bruker bruker Hive derbydatabase og for metadata for flere brukere eller delte metadatatilfeller bruker Hive MYSQL.

For oppsett MySQL som database og for รฅ lagre metadatainformasjon, sjekk veiledning "Installasjon og konfigurasjon av HIVE og MYSQL"

Noen av hovedpunktene om Hive:

  • Den stรธrste forskjellen mellom HQL og SQL er at Hive-spรธrringen kjรธres pรฅ Hadoops infrastruktur i stedet for den tradisjonelle databasen.
  • Utfรธrelsen av Hive-spรธrringen kommer til รฅ bli som en serie med automatisk genererte kartreduksjonsjobber.
  • Hive stรธtter partisjons- og bรธttekonsepter for enkel henting av data nรฅr klienten utfรธrer spรธrringen.
  • Hive stรธtter tilpassede spesifikke UDF (User Defined Functions) for datarensing, filtrering osv. I henhold til kravene til programmererne kan man definere Hive UDFer.

Hive vs relasjonsdatabaser

Ved รฅ bruke Hive kan vi utfรธre noe sรฆregen funksjonalitet som ikke oppnรฅs i relasjonsdatabaser. For en enorm mengde data som er i peta-byte, er det viktig รฅ spรธrre etter dem og fรฅ resultater pรฅ sekunder. Og Hive gjรธr dette ganske effektivt, den behandler forespรธrslene raskt og gir resultater pรฅ sekundets tid.

La nรฅ se hva som gjรธr Hive sรฅ rask.

Noen viktige forskjeller mellom Hive og relasjonsdatabaser er fรธlgende;

Relasjonsdatabaser er av "Schema on READ og Schema on Write". Fรธrst oppretter du en tabell og setter deretter inn data i den aktuelle tabellen. Pรฅ relasjonsdatabasetabeller kan funksjoner som innsettinger, oppdateringer og modifikasjoner utfรธres.

Hive er "Skjema pรฅ LESBARE". Sรฅ funksjoner som oppdatering, modifikasjoner osv. fungerer ikke med dette. Fordi Hive-spรธrringen i en typisk klynge kjรธrer pรฅ flere datanoder. Sรฅ det er ikke mulig รฅ oppdatere og endre data pรฅ tvers av flere noder.( Hive-versjoner under 0.13)

Hive stรธtter ogsรฅ "LES Mange SKRIV En gang" mรธnster. Noe som betyr at etter รฅ ha satt inn tabell kan vi oppdatere tabellen i de nyeste Hive-versjonene.

MERKNADER: Den nye versjonen av Hive kommer imidlertid med oppdaterte funksjoner. Hive-versjoner (Hive 0.14) kommer med oppdaterings- og slettingsalternativer som nye funksjoner

Hive Architecture

Hive Architecture

Skjermbildet ovenfor forklarer Apache Hive arkitektur i detalj

Hive bestรฅr hovedsakelig av 3 kjernedeler

  1. Hive-kunder
  2. Hive-tjenester
  3. Hive-lagring og databehandling

Hive-kunder:

Hive gir forskjellige drivere for kommunikasjon med en annen type applikasjoner. For Thrift-baserte applikasjoner vil det gi Thrift-klient for kommunikasjon.

Til Java relaterte applikasjoner, gir den JDBC-drivere. Annet enn alle typer applikasjoner leverte ODBC-drivere. Disse klientene og driverne kommuniserer igjen med Hive-serveren i Hive-tjenestene.

Hive-tjenester:

Kundeinteraksjoner med Hive kan utfรธres gjennom Hive-tjenester. Hvis klienten รธnsker รฅ utfรธre spรธrringsrelaterte operasjoner i Hive, mรฅ den kommunisere gjennom Hive Services.

CLI er kommandolinjegrensesnittet som fungerer som Hive-tjeneste for DDL-operasjoner (Data definition Language). Alle drivere kommuniserer med Hive-serveren og til hoveddriveren i Hive-tjenester som vist i arkitekturdiagrammet ovenfor.

Driver som finnes i Hive-tjenestene representerer hoveddriveren, og den kommuniserer alle typer JDBC, ODBC og andre klientspesifikke applikasjoner. Driveren vil behandle disse forespรธrslene fra forskjellige applikasjoner til metabutikker og feltsystemer for videre behandling.

Hive-lagring og databehandling:

Hive-tjenester som Meta Store, Filsystem og Job Client kommuniserer pรฅ sin side med Hive-lagring og utfรธrer fรธlgende handlinger

  • Metadatainformasjon for tabeller opprettet i Hive lagres i Hive "Metalagringsdatabase".
  • Spรธrringsresultater og data lastet inn i tabellene vil bli lagret i Hadoop-klyngen pรฅ HDFS.

Jobbutfรธrelsesflyt:

Jobbgjennomfรธringsflyt

Fra skjermbildet ovenfor kan vi forstรฅ jobbutfรธrelsesflyten i Hive med Hadoop

Dataflyten i Hive oppfรธrer seg i fรธlgende mรธnster;

  1. Utfรธre spรธrring fra brukergrensesnittet (brukergrensesnitt)
  2. Driveren samhandler med Compiler for รฅ fรฅ planen. (Her refererer planen til utfรธrelse av spรธrringer) prosess og dens relaterte metadatainformasjonsinnsamling
  3. Kompilatoren lager planen for en jobb som skal utfรธres. Kompilator kommuniserer med Meta Store for รฅ fรฅ metadataforespรธrsel
  4. Metalager sender metadatainformasjon tilbake til kompilatoren
  5. Kompilatoren kommuniserer med driveren med den foreslรฅtte planen for รฅ utfรธre spรธrringen
  6. Driver Sender utfรธrelsesplaner til utfรธrelsesmotoren
  7. Execution Engine (EE) fungerer som en bro mellom Hive og Hadoop for รฅ behandle spรธrringen. For DFS-operasjoner.
  • EE bรธr fรธrst kontakte Name Node og deretter til Data noder for รฅ fรฅ verdiene lagret i tabeller.
  • EE kommer til รฅ hente รธnskede poster fra datanoder. De faktiske dataene til tabeller ligger kun i datanoden. Mens den fra Name Node bare henter metadatainformasjonen for spรธrringen.
  • Den samler inn faktiske data fra datanoder relatert til nevnte spรธrring
  • Execution Engine (EE) kommuniserer toveis med Meta-butikken i Hive for รฅ utfรธre DDL-operasjoner (Data Definition Language). Her utfรธres DDL-operasjoner som CREATE, DROP og ALTERING tabeller og databaser. Meta store vil kun lagre informasjon om databasenavn, tabellnavn og kolonnenavn. Den vil hente data relatert til nevnte spรธrring.
  • Utfรธrelsesmotoren (EE) kommuniserer igjen med Hadoop-daemoner som navnenoden, datanodene og jobbnodene. tracker for รฅ kjรธre spรธrringen oppรฅ Hadoop-filsystemet
  1. Henter resultater fra sjรฅfรธren
  2. Sender resultater til utfรธrelsesmotoren. Nรฅr resultatene er hentet fra datanoder til EE, vil den sende resultatene tilbake til driveren og til brukergrensesnittet (frontend)

Hive Kontinuerlig i kontakt med Hadoop-filsystemet og dets demoner via utfรธrelsesmotoren. Den stiplede pilen i jobbflytdiagrammet viser kommunikasjonen med utfรธrelsesmotoren med Hadoop-demoner.

Ulike moduser av Hive

Hive kan operere i to moduser avhengig av stรธrrelsen pรฅ datanodene i Hadoop.

Disse modusene er,

  • Lokal modus
  • Kartreduksjonsmodus

Nรฅr du skal bruke lokal modus:

  • Hvis Hadoop er installert i pseudo-modus med รฉn datanode, bruker vi Hive i denne modusen
  • Hvis datastรธrrelsen er mindre enn begrenset til en enkelt lokal maskin, kan vi bruke denne modusen
  • Behandlingen vil vรฆre veldig rask pรฅ mindre datasett som finnes pรฅ den lokale maskinen

Nรฅr du skal bruke kartreduksjonsmodus:

  • Hvis Hadoop har flere datanoder og data er fordelt over forskjellige noder, bruker vi Hive i denne modusen
  • Den vil utfรธre pรฅ store mengder datasett og spรธrring kommer til รฅ kjรธre parallelt
  • Behandling av store datasett med bedre ytelse kan oppnรฅs gjennom denne modusen

I Hive kan vi sette denne egenskapen til รฅ nevne hvilken modus Hive kan fungere? Som standard fungerer det i Map Reduce-modus, og for lokal modus kan du ha fรธlgende innstilling.

Hive for รฅ jobbe i lokal modussett

SETt mapped.job.tracker=lokal;

Fra Hive versjon 0.7 stรธtter den en modus for รฅ kjรธre kartreduksjonsjobber i lokal modus automatisk.

Hva er Hive Server2 (HS2)?

HiveServer2 (HS2) er et servergrensesnitt som utfรธrer fรธlgende funksjoner:

  • Gjรธr det mulig for eksterne klienter รฅ utfรธre spรธrringer mot Hive
  • Hent resultatene av nevnte sรธk

Fra den nyeste versjonen har den noen avanserte funksjoner basert pรฅ Thrift RPC som;

  • Multiklient samtidighet
  • Autentisering

Sammendrag

Hive er et ETL- og datavarehusverktรธy pรฅ toppen av Hadoop-รธkosystemet og brukes til รฅ behandle strukturerte og semistrukturerte data.

  • Hive er en database som finnes i Hadoop-รธkosystemet som utfรธrer DDL- og DML-operasjoner, og den gir fleksibelt spรธrresprรฅk som HQL for bedre spรธrring og behandling av data.
  • Det gir sรฅ mange funksjoner sammenlignet med RDMS som har visse begrensninger.

For brukerspesifikk logikk for รฅ mรธte kundens krav.

  • Det gir mulighet for รฅ skrive og distribuere tilpassede definerte skript og brukerdefinerte funksjoner.
  • I tillegg gir den partisjoner og bรธtter for lagringsspesifikke logikker.

Oppsummer dette innlegget med: