Hive on ettevõttes laialdaselt kasutatav Big Data Analyticsi tööriist ja see on suurepärane koht alustamiseks, kui olete Big Data uustulnuk. Selles Apache Hive'i õppetükis käsitletakse Apache Hive'i põhialuseid, miks taru on vaja, selle funktsioone ja kõike muud, mida peaksite teadma.
Alustuseks mõistame Hadoopi raamistikku, millele Apache Hive on üles ehitatud.
Apache Hadoop
Apache Hadoop on tasuta ja avatud lähtekoodiga platvorm suurte andmekogude salvestamiseks ja töötlemiseks, mille suurus ulatub gigabaitidest petabaitideni. Hadoop võimaldab rühmitada arvukalt arvuteid, et paralleelselt analüüsida tohutuid andmekogumeid, selle asemel et vajada andmete salvestamiseks ja analüüsimiseks ühte suurt arvutit.
MapReduce ja Hadoop Distributed File System on kaks komponenti:
- MapReduce – MapReduce on paralleelprogrammeerimistehnika suurte organiseeritud, poolstruktureeritud ja struktureerimata andmete haldamiseks kauba riistvaraklastrites.
- HDFS – HDFS (Hadoop Distributed File System) on Hadoopi raamistiku komponent, mis salvestab ja töötleb andmeid. See on tõrketaluv failisüsteem, mis töötab standardse riistvaraga
Hadoopi moodulite abistamiseks kasutatakse erinevaid Hadoopi ökosüsteemi alamprojekte (tööriistu), sealhulgas Sqoop, Pig ja Hive.
- Mesilaspere – Hive on raamistik SQL-stiilis skriptide kirjutamiseks, mis teostavad MapReduce'i arvutusi.
- Siga – Pig on protseduuriline programmeerimiskeel, mida saab kasutada MapReduce'i protsesside jaoks skripti loomiseks.
- Sqoop - Sqoop on tööriist andmete importimiseks ja eksportimiseks HDFS-i ja RDBMS-i vahel.
Mis on Apache taru?
Apache Hive on avatud lähtekoodiga programm andmekogus programm tohutute andmekogumite lugemiseks, kirjutamiseks ja haldamiseks, mis on salvestatud otse Apache Hadoopi hajutatud failisüsteemi (HDFS) või muudesse andmesalvestussüsteemidesse, nagu Apache HBase.
SQL-i arendajad võivad kasutada Hive'i Hive Query Language (HQL) lausete loomiseks andmete päringute ja analüüsi jaoks, mis on võrreldavad tavaliste SQL-lausetega. See loodi selleks, et muuta MapReduce programmeerimine lihtsamaks, välistades vajaduse õppida ja kirjutada pikka Java koodi. Selle asemel võite kirjutada oma päringud HQL-is ja Hive koostab kaardi ja vähendab teie eest funktsioone.
Apache Hive SQL-i sarnasest liidesest on saanud ad-hoc otsingute, kokkuvõtete ja Hadoopi andmete analüüsimise kuldstandard. Kui sisaldub pilves arvutivõrgud, on see lahendus eriti kulutõhus ja skaleeritav, mistõttu paljud ettevõtted, sealhulgas Netflix ja Amazon, jätkavad Apache Hive'i arendamist ja täiustamist.
ajalugu
Facebookis töötamise ajal lõid Joydeep Sen Sarma ja Ashish Suchoo Apache Hive'i. Nad mõlemad tunnistasid, et Hadoopist maksimumi saamiseks peavad nad looma mõned üsna keerulised Java Map-Reduce ülesanded. Nad mõistsid, et nad ei suuda oma kiiresti laienevaid inseneri- ja analüütilisi meeskondi koolitada oskuste osas, mida nad vajavad Hadoopi kogu ettevõttes ärakasutamiseks. Insenerid ja analüütikud kasutasid kasutajaliidesena sageli SQL-i.
Kuigi SQL võiks rahuldada enamiku analüütikavajadustest, kavatsesid arendajad kaasata ka Hadoopi programmeeritavuse. Apache Hive tulenes nendest kahest eesmärgist: SQL-põhine deklaratiivne keel, mis võimaldas arendajatel ka oma skripte ja programme sisse tuua, kui SQL-ist ei piisanud.
See töötati välja ka tsentraliseeritud metaandmete (Hadoopi-põhise) hoidmiseks kõigi ettevõtte andmekogumite kohta, et muuta andmepõhiste organisatsioonide loomine lihtsamaks.
Kuidas Apache Hive töötab?
Lühidalt, Apache Hive teisendab HiveQL-i (SQL-i sarnases) keeles kirjutatud sisendprogrammi üheks või mitmeks Java MapReduce'i, Tezi või Sparki ülesandeks. (Kõik need täitmismootorid ühilduvad Hadoop YARN-iga.) Pärast seda korraldab Apache Hive andmed Hadoopi hajutatud failisüsteemi HDFS-i tabelitesse) ja täidab vastuse saamiseks klastris ülesandeid.
kuupäev
Apache Hive tabelid on korraldatud samamoodi nagu relatsiooniandmebaasi tabelid, andmeühikute suurus varieerub suuremast väiksemani. Andmebaasid koosnevad tabelitest, mis on jagatud osadeks, mis omakorda on jagatud ämbriteks. HiveQL-i (Hive Query Language) kasutatakse andmetele juurdepääsuks, mida saab muuta või lisada. Tabeliandmed jadatakse igas andmebaasis ja igal tabelil on oma HDFS-kataloog.
Arhitektuur
Nüüd räägime Hive Arhitektuuri kõige olulisemast aspektist. Apache Hive komponendid on järgmised:
Metastore — See jälgib teavet iga tabeli kohta, näiteks selle struktuuri ja asukohta. Partitsiooni metaandmed sisalduvad samuti Hive'is. See võimaldab juhil jälgida klastris levinud erinevate andmekogumite edenemist. Andmed salvestatakse tavapärases RDBMS-vormingus. Taru metaandmed on juhi jaoks andmete jälgimiseks äärmiselt olulised. Varundusserver dubleerib andmeid regulaarselt, et neid saaks andmete kadumise korral taastada.
juht – HiveQL-i väljavõtted võtab vastu juht, mis toimib kontrollerina. Seansside loomisega algatab juht avalduse täitmise. See jälgib tegevjuhi eluiga ja edusamme. HiveQL-i avalduse täitmise ajal salvestab draiver vajalikud metaandmed. See toimib ka andmete või päringutulemuste kogumispunktina pärast vähendamisprotsessi.
Kompilaator - See käivitab HiveQL-i päringu koostamise. Päring teisendatakse nüüd täitmisplaaniks. Ülesanded on kirjas kavas. See sisaldab ka samme, mida MapReduce peab päringuga tõlgitud tulemuse saamiseks tegema. Hive'i kompilaator (AST) teisendab päringu abstraktseks süntaksipuuks. Teisendab AST pärast ühilduvuse ja kompileerimisaja vigade (DAG) kontrollimist suunatud atsükliliseks graafikuks.
Optimeerija – See optimeerib DAG-i, tehes täitmisplaanis erinevaid muudatusi. See ühendab tõhususe suurendamiseks teisendusi, näiteks liitekonveieri muutmine üheks ühenduseks. Kiiruse parandamiseks võib optimeerija jagada tegevusi, näiteks rakendada andmetele teisendust enne vähendamise toimingu sooritamist.
Täitja – Täitja käivitab ülesanded, kui kompileerimine ja optimeerimine on lõppenud. Tööd koostab täitja.
CLI, kasutajaliides ja säästuserver – Käsurea liides (CLI) on kasutajaliides, mis võimaldab välisel kasutajal Hive'iga suhelda. Hive säästuserver, mis sarnaneb JDBC või ODBC protokollidele, võimaldab välistel klientidel Hive'iga võrgu kaudu suhelda.
TURVALISUS
Apache Hive on integreeritud Hadoopi turbega, mis kasutab kliendi ja serveri vastastikuseks autentimiseks Kerberost. HDFS dikteerib Apache Hive'is äsja loodud failidele load, võimaldades teil kasutajal, rühmal ja teistel need heaks kiita.
Peamised omadused
- Taru toetab väliseid tabeleid, mis võimaldavad teil andmeid töödelda ilma neid HDFS-i salvestamata.
- Samuti võimaldab see kiiruse suurendamiseks andmete segmenteerimist tabeli tasemel.
- Apache Hive vastab suurepäraselt Hadoopi madala taseme liidese vajadusele.
- Taru muudab andmete kokkuvõtete tegemise, päringute tegemise ja analüüsi lihtsamaks.
- HiveQL ei nõua programmeerimisoskusi; SQL-päringute lihtsast mõistmisest piisab.
- Samuti saame Hive'i kasutada andmeanalüüsi ad hoc päringute tegemiseks.
- See on skaleeritav, tuttav ja kohandatav.
- HiveQL ei nõua programmeerimisoskusi; SQL-päringute lihtsast mõistmisest piisab.
kasu
Apache Hive võimaldab koostada päeva lõpu aruandeid, igapäevaseid tehingute hindamisi, ad hoc otsinguid ja andmete analüüsi. Apache Hive'i põhjalik ülevaade annab märkimisväärse konkurentsieelise ja hõlbustab turu nõudmistele reageerimist.
Siin on mõned eelised, kui selline teave on hõlpsasti kättesaadav.
- Kasutusmugavus – SQL-i sarnase keelega on andmete päringuid lihtne mõista.
- Kiirendatud andmete sisestamine — Kuna Apache Hive loeb skeemi ilma tabelitüüpi või skeemi määratlust kontrollimata, ei pea andmeid lugema, sõeluma ega serialiseerima kettale andmebaasi sisemises vormingus. Seevastu tavapärases andmebaasis tuleb andmeid kinnitada iga kord, kui need lisatakse.
- Suurepärane mastaapsus, paindlikkus ja kulutõhusus – Kuna andmed salvestatakse HDFS-i, mahutab Apache Hive 100 petabaiti andmeid, muutes selle tavalisest andmebaasist palju skaleeritavamaks. Apache Hive kui pilvepõhine Hadoopi teenus võimaldab klientidel kiiresti virtuaalservereid üles ja alla keerutada, et vastata muutuvatele töökoormustele.
- Laiaulatuslik töövõime – Suured andmestikud võivad käsitleda kuni 100,000 XNUMX päringut tunnis.
Piirangud
- Üldiselt on Apache Hive päringutel väga kõrge latentsusaeg.
- Allpäringu tugi on piiratud.
- Reaalajas päringud ja reataseme muudatused pole Apache Hive'is saadaval.
- Realiseerunud seisukohti ei toetata.
- Tarus värskendamise ja kustutamise toiminguid ei toetata.
- Pole ette nähtud OLTP-le (online üleminekuprotsess).
Apache Hive'iga alustamine
Apache Hive on tugev Hadoopi partner, mis lihtsustab ja ühtlustab teie töövooge. Apache Hive'ist maksimaalse kasu saamiseks on sujuv integreerimine hädavajalik. Esimene samm on minna aadressile veebisait.
1. Paigaldustaru stabiilselt väljalaskmiselt
Alustuseks laadige ühest Apache allalaadimispeeglist alla Hive uusim stabiilne versioon (vt Taru väljaanded). Seejärel tuleb tarball lahti pakkida. See loob alamkausta nimega hive-xyz (kus xyz on väljalaske number):
Määrake keskkonnamuutuja HIVE_HOME osutama installikataloogile:
Lõpuks lisage omale $HIVE_HOME/bin PATH
:
2. Jookstaru
Taru kasutab Hadoopi, seega:
- teie teel peab olema Hadoop VÕI
3. DLL-i toimimine
Taru tabeli loomine
genereerib tabeli nimega pokes kahe veeruga, millest esimene on täisarv ja teine string.
Tabelite sirvimine
Kõigi tabelite loend
Tabelite muutmine ja kukutamine
Tabelite nimesid saab muuta ja veerge lisada või asendada:
Tasub märkida, et REPLACE COLUMNS asendab kõik olemasolevad veerud, muutes ainult tabeli struktuuri, mitte andmeid. Tabelis tuleb kasutada natiivset SerDe. REPLACE COLUMNS saab kasutada ka veergude eemaldamiseks tabeli skeemist:
Tabelite kukutamine
Apache Hive'is on palju lisatoiminguid ja -funktsioone, mille kohta saate teada ametlikult veebisaidilt külastades.
Järeldus
Hive definitsioon on andmeprogrammi liides päringute tegemiseks ja analüüsimiseks tohutute andmekogumite jaoks, mis on üles ehitatud Apache Hadoopi peale. Spetsialistid valivad selle teiste programmide, tööriistade ja tarkvara asemel, kuna see on mõeldud peamiselt Hive'i ulatuslike andmete jaoks ja seda on lihtne kasutada.
Loodetavasti aitab see õpetus teil Apache Hive'iga alustada ja teie töövooge tõhusamaks muuta. Andke meile kommentaarides teada.
Jäta vastus