Hive is een veelgebruikte Big Data Analytics-tool in het bedrijf en het is een fantastische plek om te beginnen als Big Data nieuw voor je is. Deze Apache Hive-les gaat door de grondbeginselen van Apache Hive, waarom een hive nodig is, de kenmerken ervan en al het andere dat u moet weten.
Laten we eerst het Hadoop-framework begrijpen waarop Apache Hive is gebouwd.
Apache Hadoop
Apache Hadoop is een gratis en open source platform voor het opslaan en verwerken van grote datasets variërend in grootte van gigabytes tot petabytes. Met Hadoop kunnen meerdere computers worden geclusterd om enorme datasets parallel te analyseren, in plaats van een enkele grote computer nodig te hebben om de gegevens op te slaan en te analyseren.
MapReduce en Hadoop Distributed File System zijn twee van de componenten:
- KaartVerminderen - MapReduce is een parallelle programmeertechniek voor het verwerken van enorme hoeveelheden georganiseerde, semi-gestructureerde en ongestructureerde gegevens op commodity-hardwareclusters.
- HDFS – HDFS (Hadoop Distributed File System) is een Hadoop-frameworkcomponent die gegevens opslaat en verwerkt. Het is een fouttolerant bestandssysteem dat op standaardhardware draait
Verschillende subprojecten (tools) in het Hadoop-ecosysteem, waaronder Sqoop, Pig en Hive, worden gebruikt om Hadoop-modules te ondersteunen.
- Bijenkorf – Hive is een raamwerk voor het schrijven van scripts in SQL-stijl die MapReduce-berekeningen uitvoeren.
- Varken – Pig is een procedurele programmeertaal die kan worden gebruikt om een script voor MapReduce-processen te maken.
- Duik – Sqoop is een tool voor het importeren en exporteren van gegevens tussen HDFS en RDBMS.
Wat is Apache-bijenkorf?
Apache Hive is een open source datawarehouse programma voor het lezen, schrijven en beheren van enorme gegevenssets die rechtstreeks zijn opgeslagen in het Apache Hadoop Distributed File System (HDFS) of andere gegevensopslagsystemen zoals Apache HBase.
SQL-ontwikkelaars kunnen Hive gebruiken om Hive Query Language (HQL)-instructies te maken voor gegevensquery's en -analyse die vergelijkbaar zijn met gewone SQL-instructies. Het is gemaakt om MapReduce-programmering gemakkelijker te maken door de noodzaak om lange Java-code te leren en te schrijven te elimineren. In plaats daarvan kunt u uw vragen in HQL schrijven en Hive bouwt de kaart en vermindert de functies voor u.
De SQL-achtige interface van Apache Hive is de gouden standaard geworden voor het uitvoeren van ad-hoczoekopdrachten, het samenvatten en analyseren van Hadoop-gegevens. Indien opgenomen in de cloud computernetwerken, is deze oplossing bijzonder kosteneffectief en schaalbaar, en daarom blijven veel bedrijven, waaronder Netflix en Amazon, Apache Hive ontwikkelen en verbeteren.
Geschiedenis
Tijdens hun tijd bij Facebook creëerden Joydeep Sen Sarma en Ashish Thusoo samen Apache Hive. Ze beseften allebei dat ze, om het meeste uit Hadoop te halen, nogal gecompliceerde Java Map-Reduce-taken moesten maken. Ze beseften dat ze hun snelgroeiende technische en analytische teams niet zouden kunnen opleiden in de vaardigheden die ze nodig zouden hebben om Hadoop in het hele bedrijf te gebruiken. Ingenieurs en analisten maakten veelvuldig gebruik van SQL als gebruikersinterface.
Hoewel SQL aan de meeste analysebehoeften kon voldoen, waren de ontwikkelaars ook van plan Hadoop's programmeerbaarheid op te nemen. Apache Hive is voortgekomen uit deze twee doelstellingen: een op SQL gebaseerde declaratieve taal waarmee ontwikkelaars ook hun eigen scripts en programma's konden gebruiken wanneer SQL niet genoeg was.
Het is ook ontwikkeld om gecentraliseerde metadata (Hadoop-gebaseerd) over alle datasets in het bedrijf te bewaren om de constructie van datagestuurde organisaties gemakkelijker te maken.
Hoe werkt Apache Hive?
Kortom, Apache Hive converteert een invoerprogramma geschreven in de HiveQL (SQL-achtige) taal naar een of meer Java MapReduce-, Tez- of Spark-taken. (Al deze uitvoeringsengines zijn compatibel met Hadoop YARN.) Daarna rangschikt Apache Hive de gegevens in tabellen voor het Hadoop Distributed File System (HDFS) en voert de taken uit op een cluster om een antwoord te krijgen.
Data
De Apache Hive-tabellen zijn op dezelfde manier gerangschikt als tabellen in een relationele database, met gegevenseenheden die in grootte variëren van groter tot kleiner. Databases zijn opgebouwd uit tabellen die zijn onderverdeeld in divisies, die weer zijn onderverdeeld in buckets. HiveQL (Hive Query Language) wordt gebruikt om toegang te krijgen tot de gegevens, die kunnen worden gewijzigd of toegevoegd. Tabelgegevens worden binnen elke database geserialiseerd en elke tabel heeft zijn eigen HDFS-directory.
Architectuur
Nu zullen we het hebben over het belangrijkste aspect van Hive Architecture. De componenten van Apache Hive zijn als volgt:
Metawinkel — Het houdt informatie over elke tafel bij, zoals de structuur en locatie. De metagegevens van de partitie zijn eveneens opgenomen in Hive. Hierdoor kan de bestuurder de voortgang van verschillende datasets, verspreid over het cluster, volgen. De gegevens worden opgeslagen in een conventioneel RDBMS-formaat. Hive-metadata zijn uiterst belangrijk voor de bestuurder om de gegevens bij te houden. De back-upserver dupliceert regelmatig gegevens, zodat deze kunnen worden hersteld in geval van gegevensverlies.
bestuurder – HiveQL-statements worden ontvangen door een driver, die als controller fungeert. Door sessies tot stand te brengen, initieert de driver de uitvoering van de instructie. Het houdt de levensduur en voortgang van de leidinggevende bij. Tijdens de uitvoering van een HiveQL-statement slaat de driver de benodigde metadata op. Het dient ook als verzamelpunt voor het verzamelen van gegevens of queryresultaten na het Reduce-proces.
Compiler - Het voert de HiveQL-querycompilatie uit. De query wordt nu geconverteerd naar een uitvoeringsplan. De taken staan vermeld in het plan. Het bevat ook de stappen die MapReduce moet nemen om het resultaat te verkrijgen zoals vertaald door de query. De query wordt door de Hive-compiler (AST) geconverteerd naar een abstracte syntaxisboom. Converteert de AST naar een gerichte acyclische grafiek na controle op compatibiliteit en compilatiefouten (DAG).
Optimizer - Het optimaliseert DAG door verschillende wijzigingen aan te brengen in het uitvoeringsplan. Het combineert transformaties voor verbeterde efficiëntie, zoals het omzetten van een pijplijn van joins in één join. Om de snelheid te verbeteren, kan de optimizer activiteiten splitsen, zoals het toepassen van een transformatie op gegevens voordat een reductiebewerking wordt uitgevoerd.
executeur – De uitvoerder voert de taken uit wanneer de compilatie en optimalisatie zijn voltooid. De taken worden gepijplijnd door de uitvoerder.
CLI, gebruikersinterface en Thrift-server – De opdrachtregelinterface (CLI) is een gebruikersinterface waarmee een externe gebruiker met Hive kan communiceren. De zuinigheidsserver van Hive, vergelijkbaar met de JDBC- of ODBC-protocollen, stelt externe clients in staat om via een netwerk met Hive te communiceren.
Security
Apache Hive is geïntegreerd met Hadoop-beveiliging, die Kerberos gebruikt voor wederzijdse client-server-authenticatie. De HDFS dicteert machtigingen voor nieuw gegenereerde bestanden in Apache Hive, zodat u deze kunt goedkeuren door de gebruiker, groep en anderen.
Belangrijkste kenmerken
- Hive ondersteunt externe tabellen, waarmee u gegevens kunt verwerken zonder deze op te slaan in HDFS.
- Het maakt ook gegevenssegmentatie op tafelniveau mogelijk om de snelheid te verhogen.
- Apache Hive voldoet uitstekend aan de low-level interfacebehoefte van Hadoop.
- Hive maakt het samenvatten, opvragen en analyseren van gegevens eenvoudiger.
- HiveQL vereist geen programmeervaardigheden; een eenvoudig begrip van SQL-query's is voldoende.
- We kunnen Hive ook gebruiken om ad-hoc queries uit te voeren voor data-analyse.
- Het is schaalbaar, vertrouwd en aanpasbaar.
- HiveQL vereist geen programmeervaardigheden; een eenvoudig begrip van SQL-query's is voldoende.
Voordelen
Apache Hive maakt eindedagrapporten, dagelijkse transactie-evaluaties, ad-hoczoekopdrachten en gegevensanalyse mogelijk. De uitgebreide inzichten die Apache Hive biedt, bieden aanzienlijke concurrentievoordelen en maken het gemakkelijker voor u om in te spelen op de vraag van de markt.
Hier zijn enkele voordelen van het direct beschikbaar hebben van dergelijke informatie:
- Gebruiksgemak – Met zijn SQL-achtige taal is het opvragen van gegevens eenvoudig te begrijpen.
- Versnelde gegevensinvoer — Omdat Apache Hive het schema leest zonder het tabeltype of de schemadefinitie te verifiëren, hoeven gegevens niet te worden gelezen, geparseerd en geserialiseerd naar schijf in de interne indeling van de database. In een conventionele database daarentegen moeten gegevens elke keer dat ze worden toegevoegd, worden gevalideerd.
- Superieure schaalbaarheid, flexibiliteit en kosteneffectiviteit - Omdat gegevens worden opgeslagen in de HDFS, kan Apache Hive honderden petabytes aan gegevens bevatten, waardoor het een veel schaalbaardere optie is dan een typische database. Apache Hive, als een cloudgebaseerde Hadoop-service, stelt klanten in staat om snel virtuele servers op en neer te laten gaan om aan veranderende workloads te voldoen.
- Uitgebreide werkcapaciteit – Grote datasets kunnen tot 100,000 queries per uur verwerken.
Beperkingen
- Over het algemeen hebben Apache Hive-query's een zeer hoge latentie.
- Subquery-ondersteuning is beperkt.
- Realtime query's en wijzigingen op rijniveau zijn niet beschikbaar in Apache Hive.
- Er is geen ondersteuning voor gematerialiseerde weergaven.
- In de hive worden update- en delete-acties niet ondersteund.
- Niet bedoeld voor OLTP (online overgangsproces).
Aan de slag met Apache Hive
Apache Hive is een sterke Hadoop-partner die uw workflows vereenvoudigt en stroomlijnt. Om het meeste uit Apache Hive te halen, is naadloze integratie essentieel. De eerste stap is om naar de van de.
1. Installatie Hive vanaf een stabiele release
Begin met het downloaden van de meest recente stabiele release van Hive van een van de Apache-downloadspiegelservers (zie Hive-uitgaven). De tarball moet dan worden uitgepakt. Hierdoor wordt een submap gemaakt met de naam hive-xyz (waarbij xyz het releasenummer is):
Stel de omgevingsvariabele HIVE_HOME zo in dat deze verwijst naar de installatiemap:
Voeg tot slot $HIVE_HOME/bin toe aan je PATH
:
2. Bijenkorf uitvoeren
Hive gebruikt Hadoop, dus:
- je moet Hadoop op je pad hebben OF
3. DLL-bewerking
Hive-tabel maken
genereert een tabel met de naam pokes met twee kolommen, waarvan de eerste een geheel getal is en de tweede een tekenreeks.
Bladeren door tabellen
Lijst van alle tabellen
Tabellen wijzigen en verwijderen
Tabelnamen kunnen worden gewijzigd en kolommen kunnen worden toegevoegd of vervangen:
Het is vermeldenswaard dat REPLACE COLUMNS alle bestaande kolommen vervangt terwijl alleen de structuur van de tabel wordt gewijzigd en niet de gegevens. Er moet een native SerDe in de tabel worden gebruikt. REPLACE COLUMNS kan ook worden gebruikt om kolommen uit het schema van een tabel te verwijderen:
Tafels laten vallen
Er zijn veel aanvullende bewerkingen en functies in Apache Hive waarover u meer te weten kunt komen door de officiële website te bezoeken.
Conclusie
Hive-definitie is een dataprogramma-interface voor het opvragen en analyseren van enorme datasets die bovenop Apache Hadoop zijn gebouwd. Professionals kiezen het boven andere programma's, tools en software, omdat het voornamelijk is ontworpen voor uitgebreide Hive-gegevens en eenvoudig te gebruiken is.
Ik hoop dat deze tutorial je helpt om met Apache Hive aan de slag te gaan en je workflows efficiënter te maken. Laat het ons weten in de reacties.
Laat een reactie achter