Hive is 'n wyd gebruikte Big Data Analytics-instrument in die besigheid, en dit is 'n fantastiese plek om te begin as jy nuut is met Big Data. Hierdie Apache Hive-les gaan deur die grondbeginsels van Apache Hive, hoekom 'n korf nodig is, sy kenmerke en alles anders wat jy moet weet.
Kom ons verstaan eers die Hadoop-raamwerk waarop Apache Hive gebou is.
Apache Hadoop
Apache Hadoop is 'n gratis en open-source platform vir die stoor en verwerking van groot datastelle wat wissel in grootte van gigagrepe tot petagrepe. Hadoop laat toe om talle rekenaars te groepeer om enorme datastelle parallel te ontleed, eerder as om 'n enkele groot rekenaar te benodig om die data te stoor en te ontleed.
MapReduce en Hadoop Distributed File System is twee van die komponente:
- KaartVerminder - MapReduce is 'n parallelle programmeringstegniek vir die hantering van groot volumes van georganiseerde, semi-gestruktureerde en ongestruktureerde data op kommoditeit hardeware groepe.
- HDFS – HDFS (Hadoop Distributed File System) is 'n Hadoop-raamwerkkomponent wat data stoor en verwerk. Dit is 'n foutverdraagsame lêerstelsel wat op standaard hardeware werk
Verskillende subprojekte (gereedskap) in die Hadoop-ekosisteem, insluitend Sqoop, Pig en Hive, word gebruik om Hadoop-modules te help.
- Hive - Hive is 'n raamwerk vir die skryf van SQL-styl skrifte wat MapReduce berekeninge uitvoer.
- vark – Vark is 'n prosedurele programmeertaal wat gebruik kan word om 'n skrif vir MapReduce-prosesse te skep.
- Skoop - Sqoop is 'n instrument vir die invoer en uitvoer van data tussen HDFS en RDBMS.
Wat is Apache korf?
Apache Hive is 'n oopbron data pakhuis program vir lees, skryf en bestuur van groot datastelle wat direk gestoor word in die Apache Hadoop Distributed File System (HDFS) of ander databergingstelsels soos Apache HBase.
SQL-ontwikkelaars kan Hive gebruik om Hive Query Language (HQL)-stellings te skep vir data-navrae en -analise wat vergelykbaar is met gewone SQL-stellings. Dit is geskep om MapReduce-programmering makliker te maak deur die behoefte om lang Java-kode te leer en te skryf, uit te skakel. In plaas daarvan kan jy jou navrae in HQL skryf, en Hive sal die kaart bou en die funksies vir jou verminder.
Die SQL-agtige koppelvlak van Apache Hive het die Goue Standaard geword vir die uitvoer van ad-hoc soektogte, opsomming en ontleding van Hadoop-data. Wanneer ingesluit in wolk rekenaarnetwerke, is hierdie oplossing veral koste-effektief en skaalbaar, en daarom is baie firmas, insluitend Netflix en Amazon, steeds besig om Apache Hive te ontwikkel en te verbeter.
Geskiedenis
Gedurende hul tyd by Facebook het Joydeep Sen Sarma en Ashish Thusoo Apache Hive saamgeskep. Hulle het albei besef dat om die meeste uit Hadoop te kry, hulle 'n paar taamlik ingewikkelde Java Map-Reduce-take sal moet skep. Hulle het besef dat hulle nie hul vinnig groeiende ingenieurs- en analitiese spanne sou kon opvoed oor die vaardighede wat hulle nodig het om Hadoop regoor die maatskappy te benut nie. Ingenieurs en ontleders het SQL gereeld as 'n gebruikerskoppelvlak gebruik.
Alhoewel SQL aan die meeste ontledingsbehoeftes kan voldoen, was die ontwikkelaars ook van plan om Hadoop se programmeerbaarheid in te sluit. Apache Hive het ontstaan uit hierdie twee doelwitte: 'n SQL-gebaseerde verklarende taal wat ook ontwikkelaars in staat gestel het om hul eie skrifte en programme in te bring wanneer SQL nie genoeg was nie.
Dit is ook ontwikkel om gesentraliseerde metadata (Hadoop-gebaseerd) oor al die datastelle in die maatskappy te hou om die konstruksie van data-gedrewe organisasies makliker te maak.
Hoe werk Apache Hive?
In 'n neutedop, Apache Hive omskep 'n invoerprogram wat in die HiveQL (SQL-agtige) taal geskryf is in een of meer Java MapReduce-, Tez- of Spark-take. (Al hierdie uitvoering-enjins is versoenbaar met Hadoop YARN.) Daarna rangskik Apache Hive die data in tabelle vir die Hadoop Distributed File System HDFS) en voer die take op 'n cluster uit om 'n antwoord te kry.
data
Die Apache Hive-tabelle word op dieselfde manier gerangskik as wat tabelle in 'n relasionele databasis georganiseer word, met data-eenhede wat in grootte wissel van groter tot kleiner. Databasisse bestaan uit tabelle wat in afdelings verdeel is, wat verder in emmers verdeel word. HiveQL (Hive Query Language) word gebruik om toegang tot die data te verkry, wat verander of aangeheg kan word. Tabeldata word binne elke databasis geseraliseer, en elke tabel het sy eie HDFS-gids.
argitektuur
Nou sal ons praat oor die belangrikste aspek van Hive Architecture. Die komponente van Apache Hive is soos volg:
Metastore — Dit hou rekord van inligting oor elke tabel, soos die struktuur en ligging daarvan. Die partisie-metadata is ook by Hive ingesluit. Dit laat die bestuurder toe om tred te hou met die vordering van verskillende datastelle wat oor die groep versprei is. Die data word in 'n konvensionele RDBMS-formaat gestoor. Korf-metadata is uiters belangrik vir die bestuurder om tred te hou met die data. Die rugsteunbediener dupliseer data op 'n gereelde basis sodat dit herwin kan word in die geval van dataverlies.
Driver – HiveQL-stellings word deur 'n bestuurder ontvang, wat as 'n kontroleerder funksioneer. Deur sessies te vestig, begin die bestuurder die uitvoering van die verklaring. Dit hou tred met die bestuur se lewensduur en vordering. Tydens die uitvoering van 'n HiveQL-stelling, stoor die bestuurder die vereiste metadata. Dit dien ook as 'n data- of navraagresultaatversamelpunt na die Verminder-proses.
samesteller - Dit voer die HiveQL-navraagsamestelling uit. Die navraag is nou omgeskakel na 'n uitvoeringsplan. Die take word in die plan gelys. Dit sluit ook die stappe in wat MapReduce moet neem om die resultaat te verkry soos vertaal deur die navraag. Die navraag word omgeskakel na 'n Abstrakte Sintaksisboom deur Hive se samesteller (AST). Skakel die AST om na 'n gerigte asikliese grafiek nadat nagegaan is vir versoenbaarheid en samestelling-tydfoute (DAG).
Optimizer – Dit optimaliseer DAG deur verskillende veranderinge aan die uitvoeringsplan aan te bring. Dit kombineer transformasies vir verbeterde doeltreffendheid, soos om 'n pyplyn van verbindings in 'n enkele verbinding te verander. Om spoed te verbeter, kan die optimaliseerder aktiwiteite verdeel, soos om 'n transformasie op data toe te pas voordat 'n reduksiebewerking uitgevoer word.
eksekuteur – Die eksekuteur voer die take uit wanneer die samestelling en optimalisering voltooi is. Die take word deur die Eksekuteur aangelê.
CLI, UI en Thrift Server – Die opdraglyn-koppelvlak (CLI) is 'n gebruikerskoppelvlak wat 'n eksterne gebruiker toelaat om met Hive te kommunikeer. Hive se spaarsaamheidsbediener, soortgelyk aan die JDBC- of ODBC-protokolle, laat eksterne kliënte toe om via 'n netwerk met Hive te kommunikeer.
Sekuriteit
Apache Hive is geïntegreer met Hadoop-sekuriteit, wat Kerberos gebruik vir kliënt-bediener wedersydse verifikasie. Die HDFS dikteer toestemmings vir nuutgegenereerde lêers in Apache Hive, wat jou toelaat om deur die gebruiker, groep en ander goed te keur.
belangrike kenmerke
- Hive ondersteun eksterne tabelle, waarmee jy data kan verwerk sonder om dit in HDFS te stoor.
- Dit stel ook datasegmentering op tabelvlak moontlik om spoed te verhoog.
- Apache Hive voldoen uitstekend aan Hadoop se laevlak-koppelvlakbehoefte.
- Hive maak data-opsomming, navrae en ontleding makliker.
- HiveQL vereis geen programmeringsvaardighede nie; 'n eenvoudige begrip van SQL-navrae is voldoende.
- Ons kan Hive ook gebruik om ad hoc-navrae vir data-analise uit te voer.
- Dit is skaalbaar, bekend en aanpasbaar.
- HiveQL vereis geen programmeringsvaardighede nie; 'n eenvoudige begrip van SQL-navrae is voldoende.
Voordele
Apache Hive maak voorsiening vir einde-van-dag verslae, daaglikse transaksie-evaluasies, ad-hoc soektogte en data-analise. Die omvattende insigte wat deur Apache Hive verskaf word, gee aansienlike mededingende voordele en maak dit vir jou makliker om op markvereistes te reageer.
Hier is 'n paar van die voordele om sulke inligting geredelik beskikbaar te hê:
- Gemak van gebruik – Met sy SQL-agtige taal is dit maklik om navraag te doen oor data.
- Versnelde data-invoeging — Omdat Apache Hive die skema lees sonder om die tabeltipe of skemadefinisie te verifieer, hoef data nie gelees, ontleed en na skyf in die databasis se interne formaat gelees te word nie. In teenstelling hiermee, in 'n konvensionele databasis, moet data bekragtig word elke keer as dit bygevoeg word.
- Uitstekende skaalbaarheid, buigsaamheid en koste-effektiwiteit – Omdat data in die HDFS gestoor word, kan Apache Hive 100'e petagrepe data hou, wat dit 'n baie meer skaalbare opsie maak as 'n tipiese databasis. Apache Hive, as 'n wolk-gebaseerde Hadoop-diens, stel kliënte in staat om virtuele bedieners vinnig op en af te draai om aan veranderende werkladings te voldoen.
- Uitgebreide werkvermoë – Groot datastelle kan tot 100,000 XNUMX navrae per uur hanteer.
Beperkings
- Oor die algemeen het Apache Hive-navrae baie hoë latensie.
- Subnavraagondersteuning is beperk.
- Intydse navrae en ryvlakveranderings is nie in Apache Hive beskikbaar nie.
- Daar is geen ondersteuning vir gematerialiseerde sienings nie.
- Opdateer- en uitveehandelinge word nie in die korf ondersteun nie.
- Nie bedoel vir OLTP (aanlyn oorgangsproses) nie.
Aan die gang met Apache Hive
Apache Hive is 'n sterk Hadoop-vennoot wat u werkvloei vereenvoudig en stroomlyn. Om die meeste uit Apache Hive te kry, is naatlose integrasie noodsaaklik. Die eerste stap is om na die webwerf.
1. Installasie Korf vanaf 'n stabiele vrystelling
Begin deur die mees onlangse stabiele weergawe van Hive van een van die Apache-aflaaispieëls af te laai (sien Korfvrystellings). Die tarball moet dan uitgepak word. Dit sal 'n subgids genaamd hive-xyz skep (waar xyz die vrystellingnommer is):
Stel die omgewingsveranderlike HIVE_HOME om na die installasiegids te wys:
Laastens, voeg $HIVE_HOME/bin by jou PATH
:
2. Running Hive
Hive gebruik Hadoop, dus:
- jy moet Hadoop in jou pad hê OF
3. DLL Operasie
Die skep van Hive-tabel
genereer 'n tabel met die naam pokes met twee kolomme, waarvan die eerste 'n heelgetal is en die tweede waarvan 'n string is.
Blaai deur tabelle
Lys al die tabelle
Verander en los tabelle
Tabelname kan verander word en kolomme kan bygevoeg of vervang word:
Dit is opmerklik dat VERVANG KOLOMME alle bestaande kolomme vervang terwyl slegs die tabel se struktuur verander word en nie die data nie. 'n Inheemse SerDe moet in die tabel gebruik word. VERVANG KOLOMME kan ook gebruik word om kolomme uit die skema van 'n tabel te verwyder:
Los tafels
Daar is baie bykomende bedrywighede en kenmerke in Apache Hive waaroor u kan leer deur die amptelike webwerf te besoek.
Gevolgtrekking
Hive-definisie is 'n dataprogram-koppelvlak vir navrae en ontleding vir groot datastelle wat bo-op Apache Hadoop gebou is. Professionele mense kies dit bo ander programme, gereedskap en sagteware, aangesien dit hoofsaaklik ontwerp is vir uitgebreide data van Hive en maklik is om te gebruik.
Hoop hierdie tutoriaal help jou om met Apache Hive te begin en jou werkvloei doeltreffender te maak. Laat weet ons in die kommentaar.
Lewer Kommentaar