Hive er et mye brukt Big Data Analytics-verktøy i virksomheten, og det er et fantastisk sted å starte hvis du er ny på Big Data. Denne Apache Hive-leksjonen går gjennom det grunnleggende om Apache Hive, hvorfor en bikube er nødvendig, dens funksjoner og alt annet du bør vite.
La oss først forstå Hadoop-rammeverket som Apache Hive er bygget på.
Apache Hadoop
Apache Hadoop er en gratis og åpen kildekode plattform for lagring og behandling av store datasett som varierer i størrelse fra gigabyte til petabyte. Hadoop tillater gruppering av flere datamaskiner for å analysere enorme datasett parallelt, i stedet for å kreve en enkelt stor datamaskin for å lagre og analysere dataene.
MapReduce og Hadoop Distributed File System er to av komponentene:
- MapReduce – MapReduce er en parallell programmeringsteknikk for å håndtere store mengder organiserte, semistrukturerte og ustrukturerte data på varemaskinvareklynger.
- HDFS – HDFS (Hadoop Distributed File System) er en Hadoop-rammekomponent som lagrer og behandler data. Det er et feiltolerant filsystem som kjører på standard maskinvare
Ulike delprosjekter (verktøy) i Hadoop-økosystemet, inkludert Sqoop, Pig og Hive, brukes til å hjelpe Hadoop-moduler.
- Hive – Hive er et rammeverk for å skrive skript i SQL-stil som utfører MapReduce-beregninger.
- Pig – Pig er et prosedyremessig programmeringsspråk som kan brukes til å lage et skript for MapReduce-prosesser.
- Sqoop – Sqoop er et verktøy for å importere og eksportere data mellom HDFS og RDBMS.
Hva er Apache Hive?
Apache Hive er en åpen kildekode datalager program for lesing, skriving og administrasjon av enorme datasett lagret direkte i Apache Hadoop Distributed File System (HDFS) eller andre datalagringssystemer som Apache HBase.
SQL-utviklere kan bruke Hive til å lage Hive Query Language (HQL)-setninger for dataspørring og -analyse som kan sammenlignes med vanlige SQL-setninger. Den ble laget for å gjøre MapReduce-programmering enklere ved å eliminere behovet for å lære og skrive lang Java-kode. I stedet kan du skrive spørsmålene dine i HQL, og Hive vil bygge kartet og redusere funksjonene for deg.
Det SQL-lignende grensesnittet til Apache Hive har blitt gullstandarden for å utføre ad-hoc-søk, oppsummere og analysere Hadoop-data. Når inkludert i skyen datanettverk, er denne løsningen spesielt kostnadseffektiv og skalerbar, og det er grunnen til at mange firmaer, inkludert Netflix og Amazon, fortsetter å utvikle og forbedre Apache Hive.
Historie
I løpet av sin tid på Facebook, skapte Joydeep Sen Sarma og Ashish Thusoo Apache Hive. De innså begge at for å få mest mulig ut av Hadoop, måtte de lage noen ganske kompliserte Java Map-Reduce-oppgaver. De innså at de ikke ville være i stand til å utdanne sine raskt voksende ingeniør- og analyseteam om ferdighetene de trenger for å utnytte Hadoop i hele selskapet. Ingeniører og analytikere brukte ofte SQL som brukergrensesnitt.
Mens SQL kunne dekke de fleste analysebehov, hadde utviklerne også til hensikt å innlemme Hadoops programmerbarhet. Apache Hive oppsto fra disse to målene: et SQL-basert deklarativt språk som også gjorde det mulig for utviklere å ta inn sine egne skript og programmer når SQL ikke var nok.
Den ble også utviklet for å holde sentraliserte metadata (Hadoop-basert) om alle datasettene i selskapet for å gjøre konstruksjonen av datadrevne organisasjoner enklere.
Hvordan fungerer Apache Hive?
I et nøtteskall konverterer Apache Hive et inndataprogram skrevet i HiveQL (SQL-lignende) språk til en eller flere Java MapReduce-, Tez- eller Spark-oppgaver. (Alle disse utførelsesmotorene er kompatible med Hadoop YARN.) Etter det ordner Apache Hive dataene i tabeller for Hadoop Distributed File System HDFS) og utfører oppgavene på en klynge for å få et svar.
Data
Apache Hive-tabellene er ordnet på samme måte som tabeller i en relasjonsdatabase er organisert, med dataenheter som varierer i størrelse fra større til mindre. Databaser er bygd opp av tabeller som er delt inn i divisjoner, som videre er delt inn i bøtter. HiveQL (Hive Query Language) brukes for å få tilgang til dataene, som kan endres eller legges til. Tabelldata er serialisert i hver database, og hver tabell har sin egen HDFS-katalog.
arkitektur
Nå skal vi snakke om det viktigste aspektet ved Hive Architecture. Komponentene til Apache Hive er som følger:
Metastore — Den holder styr på informasjon om hver tabell, for eksempel dens struktur og plassering. Partisjonens metadata er også inkludert i Hive. Dette gjør at sjåføren kan holde oversikt over fremdriften til forskjellige datasett spredt over klyngen. Dataene lagres i et konvensjonelt RDBMS-format. Hive-metadata er ekstremt viktig for at sjåføren skal holde oversikt over dataene. Sikkerhetskopieringsserveren dupliserer data med jevne mellomrom, slik at de kan gjenopprettes ved tap av data.
Driver – HiveQL-setninger mottas av en driver, som fungerer som en kontroller. Ved å etablere økter, starter sjåføren utførelsen av setningen. Den holder oversikt over lederens levetid og fremgang. Under kjøringen av en HiveQL-setning lagrer driveren de nødvendige metadataene. Den fungerer også som et data- eller søkeresultatinnsamlingspunkt etter Reduksjonsprosessen.
kompilatoren – Den kjører HiveQL-spørringskompileringen. Spørringen er nå konvertert til en utførelsesplan. Oppgavene er listet opp i planen. Den inkluderer også trinnene som MapReduce må ta for å få resultatet som oversatt av spørringen. Spørringen konverteres til et abstrakt syntakstre av Hives kompilator (AST). Konverterer AST til en rettet asyklisk graf etter å ha sjekket for kompatibilitet og kompileringstidsfeil (DAG).
Optimizer – Den optimerer DAG ved å utføre ulike endringer på utførelsesplanen. Den kombinerer transformasjoner for økt effektivitet, for eksempel å gjøre en rørledning av skjøter til en enkelt skjøt. For å forbedre hastigheten kan optimeringsverktøyet dele opp aktiviteter, for eksempel å bruke en transformasjon på data før du utfører en reduksjonsoperasjon.
byrder – Eksekutør kjører oppgavene når kompileringen og optimaliseringen er ferdig. Jobbene er pipelinet av eksekutor.
CLI, UI og Thrift Server – Kommandolinjegrensesnittet (CLI) er et brukergrensesnitt som lar en ekstern bruker kommunisere med Hive. Hives sparsommelighetsserver, lik JDBC- eller ODBC-protokollene, lar eksterne klienter kommunisere med Hive via et nettverk.
Sikkerhet
Apache Hive er integrert med Hadoop-sikkerhet, som bruker Kerberos for klient-server gjensidig autentisering. HDFS dikterer tillatelser for nylig genererte filer i Apache Hive, slik at du kan godkjenne av brukeren, gruppen og andre.
Nøkkelegenskaper
- Hive støtter eksterne tabeller, som lar deg behandle data uten å lagre dem i HDFS.
- Det muliggjør også datasegmentering på tabellnivå for å øke hastigheten.
- Apache Hive oppfyller utmerket Hadoops grensesnittbehov på lavt nivå.
- Hive gjør dataoppsummering, spørring og analyse enklere.
- HiveQL krever ingen programmeringskunnskaper; en enkel forståelse av SQL-spørringer er tilstrekkelig.
- Vi kan også bruke Hive til å utføre ad-hoc-spørringer for dataanalyse.
- Det er skalerbart, kjent og tilpasningsdyktig.
- HiveQL krever ingen programmeringskunnskaper; en enkel forståelse av SQL-spørringer er tilstrekkelig.
Fordeler
Apache Hive gir mulighet for sluttrapporter, daglige transaksjonsevalueringer, ad-hoc-søk og dataanalyse. Den omfattende innsikten fra Apache Hive gir betydelige konkurransefortrinn og gjør det lettere for deg å svare på markedskrav.
Her er noen av fordelene ved å ha slik informasjon lett tilgjengelig:
- Brukervennlighet – Med det SQL-lignende språket er det enkelt å forstå datasøk.
- Akselerert datainnsetting — Fordi Apache Hive leser skjemaet uten å verifisere tabelltypen eller skjemadefinisjonen, trenger ikke data å leses, analyseres og serialiseres til disk i databasens interne format. I kontrast, i en konvensjonell database, må data valideres hver gang de legges til.
- Overlegen skalerbarhet, fleksibilitet og kostnadseffektivitet – Fordi data er lagret i HDFS, kan Apache Hive inneholde 100-vis med petabyte med data, noe som gjør det til et langt mer skalerbart alternativ enn en vanlig database. Apache Hive, som en skybasert Hadoop-tjeneste, lar kunder raskt snurre opp og ned virtuelle servere for å møte skiftende arbeidsbelastninger.
- Omfattende arbeidskapasitet – Store datasett kan håndtere opptil 100,000 XNUMX spørringer i timen.
Begrensninger
- Generelt har Apache Hive-spørringer svært høy latenstid.
- Støtte for underspørringer er begrenset.
- Sanntidsspørringer og endringer på radnivå er ikke tilgjengelige i Apache Hive.
- Det er ingen støtte for materialiserte synspunkter.
- I bikuben støttes ikke oppdaterings- og slettingshandlinger.
- Ikke beregnet for OLTP (online overgangsprosess).
Komme i gang med Apache Hive
Apache Hive er en sterk Hadoop-partner som forenkler og effektiviserer arbeidsflytene dine. For å få mest mulig ut av Apache Hive er sømløs integrasjon avgjørende. Det første trinnet er å gå til nettsted.
1. Installasjon Hive fra en stabil utgivelse
Start med å laste ned den siste stabile utgivelsen av Hive fra et av Apache-nedlastingsspeilene (se Hive utgivelser). Tarballen må da pakkes ut. Dette vil opprette en undermappe kalt hive-xyz (der xyz er utgivelsesnummeret):
Sett miljøvariabelen HIVE_HOME til å peke på installasjonsmappen:
Til slutt, legg til $HIVE_HOME/bin til din PATH
:
2. Running Hive
Hive bruker Hadoop, så:
- du må ha Hadoop i veien ELLER
3. DLL-operasjon
Opprette Hive-tabell
genererer en tabell kalt pokes med to kolonner, hvorav den første er et heltall og den andre er en streng.
Bla gjennom tabeller
Viser alle tabellene
Endre og slippe tabeller
Tabellnavn kan endres og kolonner kan legges til eller erstattes:
Det er verdt å merke seg at REPLACE COLUMNS erstatter alle eksisterende kolonner mens du bare endrer tabellens struktur og ikke dataene. En innebygd SerDe må brukes i tabellen. ERSTATT KOLONNER kan også brukes til å fjerne kolonner fra skjemaet til en tabell:
Droppe tabeller
Det er mange tilleggsoperasjoner og funksjoner i Apache Hive som du kan lære om ved å besøke den offisielle nettsiden.
konklusjonen
Hive definition er et dataprogramgrensesnitt for spørring og analyse for enorme datasett som er bygget på toppen av Apache Hadoop. Profesjonelle velger det fremfor andre programmer, verktøy og programvare siden det hovedsakelig er designet for Hive omfattende data og er enkelt å bruke.
Håper denne opplæringen hjelper deg å kickstarte med Apache Hive og gjøre arbeidsflytene dine mer effektive. Gi oss beskjed i kommentarene.
Legg igjen en kommentar