Hive negozioan oso erabilia den Big Data Analytics tresna da, eta Big Data-n berria bazara hasteko leku bikaina da. Apache Hive-ren ikasgai honek Apache Hive-ren oinarriak azaltzen ditu, zergatik den beharrezkoa erlauntza, bere ezaugarriak eta jakin behar duzun guztia.
Uler dezagun lehenik Apache Hive-ren gainean eraikitako Hadoop markoa.
Apache Hadoop
Apache Hadoop doakoa da eta Kode irekiko Gigabytetik petabytera bitarteko datu multzo handiak gordetzeko eta prozesatzeko plataforma. Hadoop-ek ordenagailu ugari multzokatzea ahalbidetzen du datu multzo izugarriak paraleloan aztertzeko, datuak gordetzeko eta aztertzeko ordenagailu handi bakar bat behar baino.
MapReduce eta Hadoop Distributed File System osagaietako bi dira:
- MapReduce – MapReduce programazio paraleloko teknika bat da, salgaien hardware klusterretan datu antolatu, erdi-egituratu eta egituratu gabekoen bolumen handiak kudeatzeko.
- HDFS – HDFS (Hadoop Distributed File System) datuak gordetzen eta prozesatzen dituen Hadoop esparruko osagaia da. Hardware estandarrean exekutatzen den akatsekiko tolerantzia duen fitxategi-sistema da
Hadoop ekosistemako azpiproiektu (tresna) desberdinak, Sqoop, Pig eta Hive barne, Hadoop moduluei laguntzeko erabiltzen dira.
- Hive – Hive MapReduce konputazioak egiten dituzten SQL estiloko script-ak idazteko esparru bat da.
- Pig – Pig programazio-lengoaia prozesal bat da, MapReduce prozesuetarako script bat sortzeko erabil daitekeena.
- Sqoop – Sqoop HDFS eta RDBMS arteko datuak inportatzeko eta esportatzeko tresna bat da.
Zer da Apache Hive?
Apache Hive kode irekiko bat da datu biltegia Apache Hadoop Distributed File System (HDFS) edo Apache HBase bezalako beste datu biltegiratze sistemetan zuzenean gordetako datu multzo erraldoiak irakurtzeko, idazteko eta kudeatzeko programa.
SQL garatzaileek Hive erabil dezakete Hive Query Language (HQL) instrukzioak sortzeko, datuen kontsulta eta analisirako, SQL adierazpen arruntekin konparagarriak direnak. MapReduce programazioa errazteko sortu zen, Java kode luzea ikasteko eta idazteko beharra ezabatuz. Horren ordez, zure kontsultak HQL-n idatz ditzakezu, eta Hive-k mapa eraikiko du eta zuretzako funtzioak murriztuko ditu.
Apache Hive-ren SQL antzeko interfazea Urrezko estandarra bihurtu da Ad-hoc bilaketak egiteko, laburtzeko eta Hadoop datuak aztertzeko. Hodeian sartuta dagoenean informatika-sareak, irtenbide hau bereziki errentagarria eta eskalagarria da, horregatik enpresa askok, Netflix eta Amazon barne, Apache Hive garatzen eta hobetzen jarraitzen dute.
Historia
Facebook-en egondako denboran, Joydeep Sen Sarma eta Ashish Thusook elkarrekin sortu zuten Apache Hive. Biek aitortu zuten Hadoop-i etekinik handiena ateratzeko, Java Map-Reduce ataza konplikatu samarrak sortu beharko lituzketela. Aitortu zuten ezingo zirela hedatu azkar hedatzen ari diren ingeniaritza eta analisi-taldeak Hadoop enpresa osoan erabiltzeko behar zituzten trebetasunetan. Ingeniariek eta analistek maiz erabiltzen zuten SQL erabiltzaile-interfaze gisa.
SQL-k analitika-behar gehienak bete ditzakeen arren, garatzaileek Hadoop-en programagarritasuna ere txertatu nahi zuten. Apache Hive bi helburu hauetatik sortu zen: SQL-n oinarritutako deklarazio-lengoaia, garatzaileek SQL nahikoa ez zenean beren script eta programak ekartzeko aukera ere ematen ziena.
Gainera, konpainiako datu multzo guztiei buruzko metadatu zentralizatuak (Hadoop-en oinarrituta) edukitzeko garatu zen, datuetan oinarritutako erakundeen eraikuntza errazteko.
Nola funtzionatzen du Apache Hive-k?
Laburbilduz, Apache Hive-k HiveQL (SQL antzeko) hizkuntzan idatzitako sarrera-programa bat Java MapReduce, Tez edo Spark zeregin batean edo gehiago bihurtzen du. (Exekuzio-motor hauek guztiak bateragarriak dira Hadoop YARN-ekin.) Horren ondoren, Apache Hive-k datuak tauletan antolatzen ditu Hadoop Distributed File System HDFS) eta kluster batean egiten ditu zereginak erantzun bat lortzeko.
Data
Apache Hive-ko taulak datu-base erlazional bateko taulak antolatzen diren modu berean daude antolatuta, datu-unitateen tamaina handiagotik txikiagoarekin. Datu-baseak zatitan banatuta dauden taulez osatuta daude, eta horiek kuboetan banatzen dira. HiveQL (Hive Query Language) datuak atzitzeko erabiltzen da, eta horiek aldatu edo erantsi daitezke. Taularen datuak datu-base bakoitzean serializatu egiten dira, eta taula bakoitzak bere HDFS direktorioa du.
Arkitektura
Orain Hive Arkitekturaren alderdirik garrantzitsuenari buruz hitz egingo dugu. Apache Hive-ren osagaiak hauek dira:
Metabiltegia — Taula bakoitzari buruzko informazioaren jarraipena egiten du, hala nola bere egitura eta kokapena. Partizioaren metadatuak ere Hive-n sartzen dira. Horri esker, gidariari klusterrean banatutako datu-multzo ezberdinen aurrerapenaren jarraipena egin dezake. Datuak ohiko RDBMS formatuan gordetzen dira. Hive metadatuak oso garrantzitsuak dira gidariarentzat datuen jarraipena egiteko. Babeskopia zerbitzariak datuak bikoizten ditu aldian-aldian, datuak galtzen badira berreskuratu ahal izateko.
Driver – HiveQL adierazpenak kontrolatzaile gisa funtzionatzen duen kontrolatzaile batek jasotzen ditu. Saioak ezarriz, gidariak adierazpenaren exekuzioari hasiera ematen dio. Exekutiboaren bizitzaren eta aurrerapenaren jarraipena egiten du. HiveQL adierazpena exekutatzen ari den bitartean, kontrolatzaileak beharrezko metadatuak gordetzen ditu. Murriztu prozesuaren ondoren datuak edo kontsulta-emaitzak biltzeko puntu gisa ere balio du.
konpiladorea – HiveQL kontsulta-konpilazioa exekutatzen du. Kontsulta exekuzio-plan batean bihurtzen da orain. Zereginak planoan ageri dira. Era berean, MapReducek kontsultak itzulitako emaitza lortzeko egin behar dituen urratsak ere jasotzen ditu. Hive-ren konpilatzaileak (AST) sintaxi-zuhaitz abstraktu batera bihurtzen du kontsulta. AST grafiko azikliko zuzendu batean bihurtzen du bateragarritasuna eta konpilazio garaiko akatsak (DAG) egiaztatu ondoren.
Optimizer – DAG optimizatzen du exekuzio-planean aldaketa desberdinak eginez. Eraginkortasuna hobetzeko eraldaketak konbinatzen ditu, esate baterako, juntagailuen kanalizazioa juntadura bakar batean bihurtzea. Abiadura hobetzeko, optimizatzaileak jarduerak bana ditzake, adibidez, datuei eraldaketa bat aplikatzea murrizketa-eragiketa bat egin aurretik.
Betearazlea – Exekutzaileak zereginak exekutatzen ditu konpilazioa eta optimizazioa amaitzen direnean. Lanpostuak Exekutoreak bideratzen ditu.
CLI, UI eta Thrift Server – Komando-lerroko interfazea (CLI) kanpoko erabiltzaile bati Hive-rekin komunikatzeko aukera ematen dion erabiltzaile-interfazea da. Hive-ren thrift zerbitzariak, JDBC edo ODBC protokoloen antzera, kanpoko bezeroei Hive-rekin sare baten bidez komunikatzeko aukera ematen die.
Segurtasuna
Apache Hive Hadoop segurtasunarekin integratuta dago, eta Kerberos erabiltzen du bezero eta zerbitzariaren elkarrekiko autentifikaziorako. HDFS-k Apache Hive-n sortu berri diren fitxategietarako baimenak ematen ditu, erabiltzaileak, taldeak eta besteek onartzeko aukera emanez.
Ezaugarriak
- Hive-k kanpoko taulak onartzen ditu, datuak HDFSn gorde gabe prozesatu ahal izateko.
- Taula mailan datuen segmentazioa ere ahalbidetzen du abiadura handitzeko.
- Apache Hive-k bikain betetzen du Hadoop-en maila baxuko interfazearen beharra.
- Hive-k datuen laburpena, kontsultak eta azterketa errazten ditu.
- HiveQL-k ez du programazio trebetasunik behar; SQL kontsulten ulermen sinplea nahikoa da.
- Hive ere erabil dezakegu datuen azterketarako ad-hoc kontsultak egiteko.
- Eskalagarria, ezaguna eta moldagarria da.
- HiveQL-k ez du programazio trebetasunik behar; SQL kontsulten ulermen sinplea nahikoa da.
Abantailak
Apache Hive-k eguneko amaierako txostenak, eguneroko transakzioen ebaluazioak, ad-hoc bilaketak eta datuak aztertzeko aukera ematen du. Apache Hive-k eskaintzen dituen informazio osoek abantaila lehiakor handiak ematen dituzte eta merkatuko eskaerei erantzutea errazten dizute.
Hona hemen informazio hori eskura izatearen onura batzuk:
- Erabiltzeko erraztasuna – Bere SQL antzeko lengoaiarekin, datuak kontsultatzea erraza da ulertzea.
- Datuen txertaketa bizkortua — Apache Hive-k eskema irakurtzen duelako taula mota edo eskema definizioa egiaztatu gabe, datuak ez dira zertan datu-basearen barne formatuan irakurri, analizatu eta serializatu diskoan. Aitzitik, datu-base konbentzionalean, datuak gehitzen diren bakoitzean balioztatu behar dira.
- Eskalagarritasun, malgutasun eta kostu-eraginkortasun handiagoa - Datuak HDFSn gordetzen direnez, Apache Hive-k 100 petabyte eduki ditzake, datu-base tipiko batek baino aukera eskalagarriagoa bihurtuz. Apache Hive-k, hodeian oinarritutako Hadoop zerbitzu gisa, bezeroei zerbitzari birtualak bizkor gora eta behera egiteko aukera ematen die lan-karga aldakorrei erantzuteko.
- Lan-gaitasun handia - Datu multzo handiek orduko 100,000 kontsulta kudea ditzakete.
Mugak
- Oro har, Apache Hive-ko kontsultek latentzia oso handia dute.
- Azpikontsulten laguntza mugatua da.
- Denbora errealeko kontsultak eta errenkada-mailako aldaketak ez daude erabilgarri Apache Hive-n.
- Ez dago materializatutako ikuspegien euskarririk.
- Erlauntzan, eguneratu eta ezabatu ekintzak ez dira onartzen.
- Ez da OLTPrako pentsatua (online trantsizio prozesua).
Apache Hive-rekin hastea
Apache Hive Hadoop bazkide sendoa da, zure lan-fluxuak errazten eta errazten dituena. Apache Hive-ri etekinik handiena ateratzeko, ezinbestekoa da integraziorik gabekoa. Lehen urratsa da .
1. Instalazio Hive bertsio egonkor batetik
Hasi Hive-ren azken bertsio egonkorra deskargatzen Apache-ren deskarga-ispilu batetik (ikus Erlauntza-oharra). Tarball-a desontziratu behar da. Honek hive-xyz izeneko azpikarpeta bat sortuko du (non xyz kaleratze-zenbakia den):
Ezarri HIVE_HOME ingurune-aldagaia instalazio-direktoriora seinal dezan:
Azkenik, gehitu $HIVE_HOME/bin zurera PATH
:
2. Running Hive
Hive-k Hadoop erabiltzen du, beraz:
- Hadoop izan behar duzu zure bidean EDO
3. DLL Eragiketa
Hive taula sortzea
pokes izeneko taula sortzen du bi zutabe dituena, lehenengoa zenbaki oso bat eta bigarrena kate bat.
Tauletan arakatzea
Taula guztiak zerrendatzea
Taulak aldatzea eta kentzea
Taulen izenak alda daitezke eta zutabeak gehitu edo ordezkatu daitezke:
Kontuan izan behar da ORDEZTU ZUTABEAK lehendik dauden zutabe guztiak ordezkatzen dituela taularen egitura eta ez datuak soilik aldatzen dituen bitartean. Taulan bertako SerDe bat erabili behar da. ORDEZTU ZUTABEAK taula baten eskematik zutabeak kentzeko ere erabil daiteke:
Taulak botatzea
Apache Hive-n eragiketa eta funtzio gehigarri asko daude webgune ofiziala bisitatuz ezagutu ditzakezunak.
Ondorioa
Hive definizioa Apache Hadoop-en gainean eraikitako datu multzo erraldoiak kontsultatzeko eta aztertzeko datu-programaren interfazea da. Profesionalek beste programa, tresna eta software batzuen gainetik aukeratzen dute batez ere Hive datu zabaletarako diseinatuta dagoelako eta erabiltzeko erraza baita.
Espero dut tutorial honek Apache Hive-rekin abiarazten lagunduko dizula eta zure lan-fluxuak eraginkorragoak izaten. Jakin iezaguzu iruzkinetan.
Utzi erantzun bat