Hive estas vaste uzata ilo pri Big Data Analytics en la komerco, kaj ĝi estas bonega loko por komenci se vi estas nova pri Big Data. Ĉi tiu leciono de Apache Hive trairas la bazojn de Apache Hive, kial abelujo estas necesa, ĝiaj trajtoj kaj ĉio alia, kion vi devus scii.
Ni unue komprenu la kadron Hadoop sur kiu Apache Hive estas konstruita.
Apache Hadoop
Apache Hadoop estas senpaga kaj malfermfonto platformo por stoki kaj prilabori grandajn datumajn arojn de grandeco de gigabajtoj ĝis petabajtoj. Hadoop permesas grupigi multajn komputilojn por analizi enormajn datumarojn paralele, prefere ol postuli ununuran grandan komputilon stoki kaj analizi la datenojn.
MapReduce kaj Hadoop Distributed File System estas du el la komponantoj:
- MapReduce - MapReduce estas paralela programa tekniko por pritrakti grandegajn volumojn de organizitaj, duonstrukturitaj kaj nestrukturitaj datumoj pri varaj aparataro.
- HDFS – HDFS (Hadoop Distributed File System) estas Hadoop-kadra komponanto, kiu stokas kaj prilaboras datumojn. Ĝi estas mistolerema dosiersistemo, kiu funkcias per norma aparataro
Malsamaj subprojektoj (iloj) en la Hadoop-ekosistemo, inkluzive de Sqoop, Pig kaj Hive, estas uzataj por helpi Hadoop-modulojn.
- Vivu – Hive estas kadro por verki SQL-stilaj skriptoj, kiuj plenumas MapReduce-komputadon.
- porko – Pig estas procedura programlingvo, kiu povas esti uzata por krei skripton por MapReduce-procezoj.
- Sqoop – Sqoop estas ilo por importi kaj eksporti datumojn inter HDFS kaj RDBMS.
Kio estas Apache Hive?
Apache Hive estas malfermfonta datuma magazeno programo por legi, skribi kaj administri grandegajn datumajn arojn stokitaj rekte en la Apache Hadoop Distribuita Dosiera Sistemo (HDFS) aŭ aliaj datumstokaj sistemoj kiel Apache HBase.
SQL-programistoj povas uzi Hive por krei Hive Query Language (HQL) deklarojn por datendemando kaj analizo kiuj estas kompareblaj al regulaj SQL-deklaroj. Ĝi estis kreita por faciligi MapReduce-programadon per forigo de la bezono lerni kaj skribi longan Java-kodon. Anstataŭe, vi povas skribi viajn demandojn en HQL, kaj Hive konstruos la mapon kaj reduktos la funkciojn por vi.
La SQL-simila interfaco de Apache Hive fariĝis la Ora Normo por plenumi ad-hoc serĉojn, resumi kaj analizi Hadoop-datumojn. Kiam inkluzivita en nubo komputikaj retoj, ĉi tiu solvo estas speciale kostefika kaj skalebla, tial multaj firmaoj, inkluzive de Netflix kaj Amazon, daŭre disvolvas kaj plibonigas Apache Hive.
historio
Dum ilia tempo ĉe Facebook, Joydeep Sen Sarma kaj Ashish Thusoo kunkreis Apache Hive. Ili ambaŭ rekonis, ke por profiti al Hadoop, ili devos krei iom komplikajn taskojn Java Map-Reduce. Ili rekonis, ke ili ne povos eduki siajn rapide vastiĝantajn inĝenierajn kaj analizajn teamojn pri la kapabloj, kiujn ili bezonas por utiligi Hadoop tra la kompanio. Inĝenieroj kaj analizistoj ofte utiligis SQL kiel uzantinterfacon.
Dum SQL povus renkonti la plimulton de analizaj bezonoj, la programistoj ankaŭ intencis korpigi la programeblecon de Hadoop. Apache Hive ekestis de ĉi tiuj du celoj: SQL-bazita deklara lingvo kiu ankaŭ ebligis programistojn alporti siajn proprajn skriptojn kaj programojn kiam SQL ne sufiĉis.
Ĝi ankaŭ estis evoluigita por teni centralizitajn metadatenojn (bazitajn de Hadoop) pri ĉiuj datumaroj en la firmao por faciligi la konstruadon de datumaj organizoj.
Kiel funkcias Apache Hive?
En resumo, Apache Hive konvertas enigprogramon skribitan en la HiveQL (SQL-simila) lingvo al unu aŭ pluraj Java MapReduce, Tez aŭ Spark-taskoj. (Ĉiuj ĉi tiuj ekzekutmotoroj estas kongruaj kun Hadoop YARN.) Post tio, Apache Hive aranĝas la datumojn en tabelojn por la Hadoop Distributed File System HDFS) kaj plenumas la taskojn sur areto por ricevi respondon.
datumoj
La Apache Hive-tabeloj estas aranĝitaj en la sama maniero kiel tabloj en interrilata datumbazo estas organizitaj, kun datumunuoj intervalantaj en grandeco de pli granda ĝis pli malgranda. Datumbazoj konsistas el tabeloj kiuj estas dividitaj en sekciojn, kiuj estas plue dividitaj en sitelojn. HiveQL (Hive Query Language) estas uzata por aliri la datumojn, kiuj povas esti ŝanĝitaj aŭ aldonitaj. Tabeldatenoj estas seriigitaj ene de ĉiu datumbazo, kaj ĉiu tabelo havas sian propran HDFS-dosierujon.
arkitekturo
Nun ni parolos pri la plej grava aspekto de Hive Architecture. La komponentoj de Apache Hive estas kiel sekvas:
Metastore — Ĝi konservas informojn pri ĉiu tablo, kiel ĝia strukturo kaj loko. La sekciometadatumoj ankaŭ estas inkluzivitaj en Hive. Ĉi tio permesas al la ŝoforo konservi trakon de la progreso de malsamaj datenoj disvastigitaj tra la areto. La datumoj estas konservitaj en konvencia RDBMS-formato. Hive-metadatenoj estas ekstreme gravaj por la ŝoforo konservi trakon de la datumoj. La rezerva servilo duplikatas datumojn regule, por ke ĝi estu reakirita okaze de perdo de datumoj.
ŝoforo – HiveQL-deklaroj estas ricevitaj de ŝoforo, kiu funkcias kiel regilo. Establante sesiojn, la ŝoforo komencas la ekzekuton de la deklaro. Ĝi kontrolas la vivdaŭron kaj progreson de la ekzekutivo. Dum la ekzekuto de HiveQL-deklaro, la ŝoforo konservas la postulatajn metadatenojn. Ĝi ankaŭ funkcias kiel datumo aŭ konsultrezulto kolekta punkto sekvante la Redukti procezo.
Kompililo – Ĝi efektivigas la HiveQL-demando-kompilon. La demando nun estas konvertita al ekzekutplano. La taskoj estas listigitaj en la plano. Ĝi ankaŭ inkluzivas la paŝojn, kiujn MapReduce devas fari por akiri la rezulton kiel tradukitan de la demando. La demando estas konvertita al Abstrakta Sintakso-Arbo per la kompililo de Hive (AST). Konvertas la AST al Direktita Acikla Grafiko post kontrolado de kongrueco kaj kompiltempaj misfunkciadoj (DAG).
Optimizilo – Ĝi optimumigas DAG farante malsamajn ŝanĝojn sur la ekzekutplano. Ĝi kombinas transformojn por plibonigita efikeco, kiel igi dukton de kuniĝoj en ununuran kunigon. Por plibonigi rapidecon, la optimumiganto povus dividi agadojn, kiel apliki transformon al datumoj antaŭ ol fari reduktan operacion.
Ekzekutisto – La ekzekutisto kuras la taskojn kiam la kompilo kaj optimumigo estas finitaj. La laborpostenoj estas duktitaj de la Ekzekutanto.
CLI, UI, kaj Thrift Server – La komandlinia interfaco (CLI) estas uzantinterfaco kiu permesas al ekstera uzanto komuniki kun Hive. La ŝparema servilo de Hive, simila al la protokoloj JDBC aŭ ODBC, permesas al eksteraj klientoj komuniki kun Hive per reto.
Sekureco
Apache Hive estas integrita kun Hadoop-sekureco, kiu uzas Kerberos por kliento-servila reciproka aŭtentigo. La HDFS diktas permesojn por lastatempe generitaj dosieroj en Apache Hive, permesante al vi aprobi de la uzanto, grupo kaj aliaj.
Ŝlosilo karakterizaĵoj
- Hive subtenas eksterajn tabelojn, kiuj ebligas vin prilabori datumojn sen stoki ĝin en HDFS.
- Ĝi ankaŭ ebligas datumsegmentadon ĉe la tablonivelo por pliigi rapidecon.
- Apache Hive bonege renkontas la malaltnivelan interfacan bezonon de Hadoop.
- Hive faciligas resumadon, pridemandadon kaj analizon de datumoj.
- HiveQL ne postulas ajnajn programajn kapablojn; simpla kompreno de SQL-demandoj sufiĉas.
- Ni ankaŭ povas uzi Hive por fari ad-hoc-demandojn por analizo de datumoj.
- Ĝi estas skalebla, konata kaj adaptebla.
- HiveQL ne postulas ajnajn programajn kapablojn; simpla kompreno de SQL-demandoj sufiĉas.
profitoj
Apache Hive ebligas finajn raportojn, ĉiutagajn transakciajn taksojn, ad hoc serĉojn kaj datuman analizon. La ampleksaj komprenoj provizitaj de Apache Hive donas signifajn konkurencivajn avantaĝojn kaj faciligas al vi respondi al merkataj postuloj.
Jen kelkaj el la avantaĝoj de havi tiajn informojn facile haveblaj:
- Facileco de uzo – Kun ĝia SQL-simila lingvo, pridemandado de datumoj estas simple komprenebla.
- Akcelita enmeto de datumoj — Ĉar Apache Hive legas la skemon sen kontroli la tabelspecon aŭ skemdifinon, datumoj ne devas esti legitaj, analizitaj kaj seriigitaj al disko en la interna formato de la datumbazo. Kontraste, en konvencia datumbazo, datumoj devas esti validigitaj ĉiufoje kiam ĝi estas aldonita.
- Supera skaleblo, fleksebleco kaj kostefikeco - Ĉar datumoj estas konservitaj en la HDFS, Apache Hive povas teni 100s da petabajtoj da datumoj, igante ĝin multe pli skalebla opcio ol tipa datumbazo. Apache Hive, kiel nub-bazita Hadoop-servo, permesas al klientoj rapide turni supren kaj malsupren virtualajn servilojn por renkonti ŝanĝiĝantajn laborŝarĝojn.
- Vasta laborkapacito – Grandaj datumaroj povas trakti ĝis 100,000 demandojn hore.
Limigoj
- Ĝenerale, Apache Hive-demandoj havas tre altan latentecon.
- Subdemanda subteno estas limigita.
- Realtempaj demandoj kaj vic-nivelaj ŝanĝoj ne haveblas en Apache Hive.
- Ne ekzistas subteno por realigitaj vidoj.
- En la abelujo, ĝisdatigi kaj forigi agojn ne estas subtenataj.
- Ne destinita por OLTP (interreta transira procezo).
Komenci kun Apache Hive
Apache Hive estas forta partnero de Hadoop, kiu simpligas kaj simpligas viajn laborfluojn. Por eltiri la plej grandan parton de Apache Hive, senjunta integriĝo estas esenca. La unua paŝo estas iri al la retejo.
1. Instalado Hive de Stabila Eldono
Komencu elŝutante la plej lastatempan stabilan eldonon de Hive de unu el la elŝutaj speguloj de Apache (vidu Hive-Eldonoj). La tarbul tiam devas esti malpakita. Ĉi tio kreos subdosierujon nomitan hive-xyz (kie xyz estas la eldonnumero):
Agordu la mediovariablon HIVE_HOME por montri al la instala dosierujo:
Fine, aldonu $HIVE_HOME/bin al via PATH
:
2. Kuranta Hive
Hive uzas Hadoop, do:
- vi devas havi Hadoop sur via vojo AŬ
3. DLL-Operacio
Kreante Hive-Tablon
generas tabelon nomitan pokes kun du kolumnoj, la unua el kiuj estas entjero kaj la dua el kiu estas ĉeno.
Foliumante tra Tabeloj
Listo de Ĉiuj Tabeloj
Ŝanĝi kaj Faligi Tabelojn
Tabelnomoj povas esti ŝanĝitaj kaj kolumnoj povas esti aldonitaj aŭ anstataŭigitaj:
Indas noti, ke REPLACE COLUMNS anstataŭigas ĉiujn ekzistantajn kolumnojn dum nur ŝanĝas la strukturon de la tabelo kaj ne la datumojn. Denaska SerDe devas esti uzata en la tabelo. Anstataŭigi kolumnojn ankaŭ povas esti uzata por forigi kolumnojn de la skemo de tabelo:
Faligi Tabelojn
Estas multaj pliaj operacioj kaj funkcioj en Apache Hive, pri kiuj vi povas lerni vizitante la oficialan retejon.
konkludo
Hive-difino estas datumprograma interfaco por pridemandado kaj analizo por grandegaj datumaroj, kiuj estas konstruitaj sur Apache Hadoop. Profesiuloj elektas ĝin super aliaj programoj, iloj kaj programaro ĉar ĝi estas ĉefe desegnita por Hive ampleksaj datumoj kaj estas simpla uzi.
Mi esperas, ke ĉi tiu lernilo helpos vin komenci kun Apache Hive kaj fari viajn laborfluojn pli efikaj. Informu nin en la komentoj.
Lasi Respondon