I denne vejledning lærer du-
- Hvad er Hive?
- Hive Arkitektur
- Forskellige former for Hive
- Hvad er Hive Server2 (HS2)?
Hvad er Hive?
Hive er et ETL- og datalagerværktøj udviklet oven på Hadoop Distribuerede Filsystem (HDFS). Hive gør job let til at udføre operationer som f.eks
- Datakapsling
- Ad-hoc-forespørgsler
- Analyse af enorme datasæt
Vigtige egenskaber ved Hive
- I Hive oprettes tabeller og databaser først, og derefter indlæses data i disse tabeller.
- Hive som datalager designet til kun at styre og forespørge strukturerede data, der er gemt i tabeller.
- Mens der beskæftiger sig med strukturerede data, har Map Reduce ikke optimerings- og anvendelsesfunktioner som UDF'er, men Hive framework har det. Forespørgselsoptimering henviser til en effektiv måde at udføre forespørgsler med hensyn til ydeevne.
- Hives SQL-inspirerede sprog adskiller brugeren fra kompleksiteten ved Map Reduce programmering. Det genbruger velkendte begreber fra den relationelle databaseverden, såsom tabeller, rækker, kolonner og skema osv. For at gøre det lettere at lære.
- Hadoop's programmering fungerer på flade filer. Så Hive kan bruge bibliotekstrukturer til at "partitionere" data for at forbedre ydeevnen på visse forespørgsler.
- En ny og vigtig komponent i Hive, dvs. Metastore, der bruges til lagring af skemaoplysninger. Denne metastore ligger typisk i en relationsdatabase. Vi kan interagere med Hive ved hjælp af metoder som
- Web-GUI
- Java Database Connectivity (JDBC) interface
- De fleste interaktioner har tendens til at finde sted over en kommandolinjegrænseflade (CLI). Hive giver en CLI til at skrive Hive-forespørgsler ved hjælp af Hive Query Language (HQL)
- Generelt ligner HQL-syntaks den SQL-syntaks, som de fleste dataanalytikere kender. Eksempelforespørgslen nedenfor viser alle de poster, der er til stede i det nævnte tabelnavn.
- Eksempel på forespørgsel : Vælg * fra
- Eksempel på forespørgsel : Vælg * fra
- Hive understøtter fire filformater, de er TEXTFILE, SEQUENCEFILE, ORC og RCFILE (Record Columnar File).
- Til opbevaring af metadata til en enkelt bruger bruger Hive derby-database og til metadata til flere brugere eller delt metadata, bruger Hive MYSQL.
For opsætning af MySQL som database og til lagring af metadatainformation tjek Vejledning "Installation og konfiguration af HIVE og MYSQL"
Nogle af de vigtigste punkter om Hive:
- Den største forskel mellem HQL og SQL er, at Hive-forespørgsel udføres på Hadoop's infrastruktur snarere end den traditionelle database.
- Hive-forespørgselens udførelse vil være som en række automatisk genererede kort reducerer job.
- Hive understøtter partitioner og skovlkoncepter for nem hentning af data, når klienten udfører forespørgslen.
- Hive understøtter brugerdefineret specifik UDF (brugerdefinerede funktioner) til datarensning, filtrering osv. I henhold til programmørernes krav kan man definere Hive UDF'er.
Hive Vs Relationelle databaser: -
Ved at bruge Hive kan vi udføre en speciel funktionalitet, der ikke opnås i relationelle databaser. For en enorm mængde data, der er i peta-byte, er det vigtigt at spørge dem og få resultater på få sekunder. Og Hive gør dette ret effektivt, det behandler forespørgslerne hurtigt og producerer resultater på sekundens tid.
Lad os nu se, hvad der gør Hive så hurtigt.
Nogle vigtige forskelle mellem Hive og relationsdatabaser er følgende:
Relationsdatabaser er af " Skema på LÆS og Skema ved skrivning ". Først opretter du en tabel og indsætter derefter data i den bestemte tabel. På relationsdatabasetabeller kan funktioner som indsættelser, opdateringer og ændringer udføres.
Hive er " Skema på kun LÆS ". Så funktioner som opdatering, ændringer osv. Fungerer ikke med dette. Fordi Hive-forespørgslen i en typisk klynge kører på flere datanoder. Så det er ikke muligt at opdatere og ændre data på tværs af flere noder. (Hive-versioner under 0.13)
Hive understøtter også " LÆS MERE SKRIV EN gang " -mønster. Hvilket betyder, at efter indsættelse af en tabel kan vi opdatere tabellen i de nyeste Hive-versioner.
BEMÆRK : Den nye version af Hive leveres dog med opdaterede funktioner. Hive-versioner (Hive 0.14) kommer med opdaterings- og sletningsmuligheder som nye funktioner
Hive Arkitektur
Ovenstående skærmbillede forklarer Apache Hive-arkitekturen i detaljer
Hive består hovedsageligt af 3 kernedele
- Hive klienter
- Hive Services
- Hive Storage og Computing
Hive klienter:
Hive giver forskellige drivere til kommunikation med en anden type applikationer. For Thrift-baserede applikationer vil det give Thrift-klienten til kommunikation.
For Java-relaterede applikationer leverer det JDBC-drivere. Bortset fra nogen form for applikationer leverede ODBC-drivere. Disse klienter og drivere kommunikerer igen med Hive-serveren i Hive-tjenesterne.
Hive Services:
Klientinteraktion med Hive kan udføres gennem Hive Services. Hvis klienten ønsker at udføre nogen forespørgselsrelaterede operationer i Hive, skal den kommunikere via Hive Services.
CLI er kommandolinjegrænsefladen fungerer som Hive-service til DDL-operationer (Data definition Language). Alle drivere kommunikerer med Hive-serveren og til hoveddriveren i Hive-tjenester som vist i ovenstående arkitekturdiagram.
Driver til stede i Hive-tjenesterne repræsenterer hoveddriveren, og den kommunikerer alle typer JDBC-, ODBC- og andre klientspecifikke applikationer. Driver behandler disse anmodninger fra forskellige applikationer til metabutik og feltsystemer til videre behandling.
Hive Storage og Computing:
Hive-tjenester som Meta Store, File System og Job Client kommunikerer igen med Hive Storage og udfører følgende handlinger
- Metadataoplysninger for tabeller oprettet i Hive lagres i Hive "Meta-lagerdatabase".
- Forespørgselsresultater og data, der er indlæst i tabellerne, gemmes i Hadoop-klynge på HDFS.
Strømning af jobekspektion:
Fra ovenstående skærmbillede kan vi forstå jobudførelsesstrømmen i Hive med Hadoop
Datastrømmen i Hive opfører sig i følgende mønster;
- Udførelse af forespørgsel fra brugergrænsefladen (brugergrænseflade)
- Føreren interagerer med Compiler for at få planen. (Her refererer planen til udførelse af forespørgsler) og dens relaterede metadataindsamling
- Compileren opretter planen for et job, der skal udføres. Compiler, der kommunikerer med Meta-butikken for at få metadataanmodning
- Meta-butikken sender metadataoplysninger tilbage til kompilatoren
- Compiler, der kommunikerer med Driver med den foreslåede plan til udførelse af forespørgslen
- Driver Sender udførelsesplaner til Execution engine
- Execution Engine (EE) fungerer som en bro mellem Hive og Hadoop for at behandle forespørgslen. Til DFS-operationer.
- EE skal først kontakte Name Node og derefter til Data noder for at få værdierne gemt i tabeller.
- EE vil hente ønskede poster fra datanoder. De faktiske data for tabeller findes kun i datanoden. Mens det fra navneknude kun henter metadataoplysningerne til forespørgslen.
- Det indsamler faktiske data fra datanoder, der er relateret til den nævnte forespørgsel
- Execution Engine (EE) kommunikerer tovejs med Meta-butik til stede i Hive for at udføre DDL-operationer (Data Definition Language). Her udføres DDL-operationer som CREATE, DROP og ALTERING tabeller og databaser. Meta-butik gemmer kun oplysninger om databasenavn, tabelnavne og kolonnenavne. Det henter data relateret til den nævnte forespørgsel.
- Execution Engine (EE) kommunikerer igen med Hadoop-dæmoner som navneknudepunkt, datanoder og jobsporing for at udføre forespørgslen oven på Hadoop-filsystemet
- Henter resultater fra driveren
- Afsendelse af resultater til udførelsesmotor. Når resultaterne er hentet fra datanoder til EE, sender det resultaterne tilbage til driveren og til brugergrænsefladen (frontend)
Hive Kontinuerligt i kontakt med Hadoop filsystem og dets dæmoner via Execution engine. Den stiplede pil i Jobdiagram viser eksekveringsmotorkommunikation med Hadoop-dæmoner.
Forskellige former for Hive
Hive kan fungere i to tilstande afhængigt af størrelsen på datanoder i Hadoop.
Disse tilstande er,
- Lokal tilstand
- Kortreduktionstilstand
Hvornår skal man bruge lokal tilstand:
- Hvis Hadoop er installeret i pseudotilstand med en dataknude, bruger vi Hive i denne tilstand
- Hvis datastørrelsen er mindre med hensyn til begrænset til en enkelt lokal maskine, kan vi bruge denne tilstand
- Behandlingen vil være meget hurtig på mindre datasæt, der findes i den lokale maskine
Hvornår skal du bruge kortreduktionstilstand:
- Hvis Hadoop har flere datanoder, og data distribueres over forskellige noder, bruger vi Hive i denne tilstand
- Det udføres på store mængder datasæt og forespørgsler, der skal udføres parallelt
- Behandling af store datasæt med bedre ydeevne kan opnås gennem denne tilstand
I Hive kan vi indstille denne egenskab til at nævne, hvilken tilstand Hive kan arbejde? Som standard fungerer det i Map Reduce-tilstand, og i lokal tilstand kan du have følgende indstilling.
Hive til at arbejde i lokal tilstand indstillet
SET mapred.job.tracker = lokal;
Fra Hive version 0.7 understøtter den en tilstand til at køre kort automatisk reducere job i lokal tilstand.
Hvad er Hive Server2 (HS2)?
HiveServer2 (HS2) er en servergrænseflade, der udfører følgende funktioner:
- Gør det muligt for fjernklienter at udføre forespørgsler mod Hive
- Hent resultaterne af de nævnte forespørgsler
Fra den nyeste version har den nogle avancerede funktioner Baseret på Thrift RPC som;
- Multiklient-samtidighed
- Godkendelse
Resumé:
Hive er et ETL- og datalagerværktøj oven på Hadoop-økosystemet og bruges til behandling af strukturerede og semistrukturerede data.
- Hive er en database, der findes i Hadoop-økosystemet, udfører DDL- og DML-operationer, og det giver fleksibelt forespørgselssprog som HQL for bedre forespørgsel og behandling af data.
- Det giver så mange funktioner i forhold til RDMS, som har visse begrænsninger.
For brugerspecifik logik til at imødekomme kundens krav.
- Det giver mulighed for at skrive og implementere brugerdefinerede scripts og brugerdefinerede funktioner.
- Derudover giver den partitioner og spande til lagringsspecifikke logikker.