Hive je pogosto uporabljeno orodje za analizo velikih podatkov v podjetju in je fantastično mesto za začetek, če ste novi v velikih podatkih. Ta lekcija Apache Hive obravnava osnove Apache Hive, zakaj je panj potreben, njegove značilnosti in vse ostalo, kar morate vedeti.
Najprej razumemo okvir Hadoop, na katerem je zgrajen Apache Hive.
Apache Hadoop
Apache Hadoop je brezplačen in open-source platforma za shranjevanje in obdelavo velikih podatkovnih nizov velikosti od gigabajtov do petabajtov. Hadoop omogoča združevanje številnih računalnikov v skupine za vzporedno analizo ogromnih nizov podatkov, namesto da bi za shranjevanje in analizo podatkov potreboval en sam velik računalnik.
MapReduce in Hadoop Distributed File System sta dve komponenti:
- MapReduce – MapReduce je tehnika vzporednega programiranja za obdelavo velikih količin organiziranih, polstrukturiranih in nestrukturiranih podatkov o grozdih strojne opreme.
- HDFS – HDFS (Hadoop Distributed File System) je komponenta okvirja Hadoop, ki shranjuje in obdeluje podatke. To je datotečni sistem, odporen na napake, ki deluje na standardni strojni opremi
Za pomoč modulom Hadoop se uporabljajo različni podprojekti (orodja) v ekosistemu Hadoop, vključno s Sqoop, Pig in Hive.
- Panj – Hive je okvir za pisanje skriptov v slogu SQL, ki izvajajo izračune MapReduce.
- Prašičja – Pig je proceduralni programski jezik, ki se lahko uporablja za ustvarjanje skripta za procese MapReduce.
- Sqoop – Sqoop je orodje za uvoz in izvoz podatkov med HDFS in RDBMS.
Kaj je Apache panj?
Apache Hive je odprtokoden podatkovno skladišče program za branje, pisanje in upravljanje ogromnih nizov podatkov, shranjenih neposredno v porazdeljenem datotečnem sistemu Apache Hadoop (HDFS) ali drugih sistemih za shranjevanje podatkov, kot je Apache HBase.
Razvijalci SQL lahko uporabljajo Hive za ustvarjanje stavkov Hive Query Language (HQL) za poizvedbe in analize podatkov, ki so primerljivi z običajnimi stavki SQL. Ustvarjen je bil, da bi olajšal programiranje MapReduce z odpravo potrebe po učenju in pisanju dolge kode Java. Namesto tega lahko svoje poizvedbe napišete v HQL in Hive bo namesto vas zgradil zemljevid in zmanjšal funkcije.
Vmesnik Apache Hive, podoben SQL, je postal zlati standard za izvajanje ad hoc iskanj, povzemanje in analiziranje podatkov Hadoop. Ko je vključen v oblak računalniška omrežja, je ta rešitev posebej stroškovno učinkovita in razširljiva, zato številna podjetja, vključno z Netflixom in Amazonom, še naprej razvijajo in izboljšujejo Apache Hive.
Zgodovina
Med svojim časom na Facebooku sta Joydeep Sen Sarma in Ashish Suchoo soustvarila Apache Hive. Oba sta spoznala, da bosta morala, da bi kar najbolje izkoristila Hadoop, ustvariti nekaj precej zapletenih nalog Java Map-Reduce. Spoznali so, da svojih hitro rastočih inženirskih in analitičnih ekip ne bodo mogli poučiti o veščinah, ki bi jih potrebovali za uporabo Hadoopa v celotnem podjetju. Inženirji in analitiki so pogosto uporabljali SQL kot uporabniški vmesnik.
Medtem ko bi SQL lahko zadovoljil večino analitičnih potreb, so razvijalci nameravali vključiti tudi Hadoopovo programiranje. Apache Hive je nastal iz teh dveh ciljev: deklarativnega jezika, ki temelji na SQL, ki je razvijalcem omogočil tudi, da vnesejo svoje skripte in programe, ko SQL ni bil dovolj.
Razvit je bil tudi za shranjevanje centraliziranih metapodatkov (na osnovi Hadoop) o vseh nizih podatkov v podjetju, da bi olajšali gradnjo organizacij, ki temeljijo na podatkih.
Kako deluje Apache Hive?
Na kratko, Apache Hive pretvori vhodni program, napisan v jeziku HiveQL (podoben SQL), v eno ali več nalog Java MapReduce, Tez ali Spark. (Vsi ti izvajalski stroji so združljivi s Hadoop YARN.) Po tem Apache Hive razporedi podatke v tabele za porazdeljeni datotečni sistem Hadoop HDFS) in izvede naloge v gruči, da dobi odgovor.
datum
Tabele Apache Hive so razporejene na enak način, kot so organizirane tabele v relacijski bazi podatkov, pri čemer so podatkovne enote v velikosti od večjih do manjših. Baze podatkov so sestavljene iz tabel, ki so razdeljene na oddelke, ki so nadalje razdeljeni na vedra. HiveQL (Hive Query Language) se uporablja za dostop do podatkov, ki jih je mogoče spremeniti ali dodati. Podatki tabele so serializirani znotraj vsake baze podatkov in vsaka tabela ima svoj imenik HDFS.
Arhitektura
Zdaj bomo govorili o najpomembnejšem vidiku arhitekture panja. Sestavine Apache Hive so naslednje:
Metastore — Sledi informacijam o vsaki tabeli, kot sta njena struktura in lokacija. Metapodatki particije so prav tako vključeni v Hive. To omogoča vozniku, da spremlja napredek različnih podatkovnih nizov, razporejenih po gruči. Podatki so shranjeni v običajnem formatu RDBMS. Metapodatki Hive so izjemno pomembni za voznika, da lahko spremlja podatke. Strežnik za varnostno kopiranje redno podvaja podatke, tako da jih je mogoče obnoviti v primeru izgube podatkov.
Voznik – Izjave HiveQL prejme gonilnik, ki deluje kot krmilnik. Z vzpostavitvijo sej voznik sproži izvedbo stavka. Spremlja življenjsko dobo in napredek izvršnega direktorja. Med izvajanjem stavka HiveQL gonilnik shrani zahtevane metapodatke. Služi tudi kot zbiralna točka podatkov ali rezultatov poizvedb po postopku Reduce.
Prevajalnik – Izvaja prevajanje poizvedbe HiveQL. Poizvedba je zdaj pretvorjena v načrt izvedbe. Naloge so navedene v načrtu. Vključuje tudi korake, ki jih mora MapReduce izvesti, da dobi rezultat, kot ga je prevedla poizvedba. Prevajalnik Hive (AST) pretvori poizvedbo v drevo abstraktne sintakse. Pretvori AST v usmerjen aciklični graf po preverjanju združljivosti in napak v času prevajanja (DAG).
Optimizator – Optimizira DAG z izvajanjem različnih sprememb v načrtu izvajanja. Združuje transformacije za izboljšano učinkovitost, kot je preoblikovanje cevovoda spojev v en sam spoj. Za izboljšanje hitrosti lahko optimizator razdeli dejavnosti, kot je uporaba transformacije podatkov, preden izvede operacijo zmanjšanja.
Izvršitelj – Izvajalec zažene naloge, ko sta kompilacija in optimizacija končana. Naloge določi izvajalec.
CLI, uporabniški vmesnik in Thrift Server – Vmesnik ukazne vrstice (CLI) je uporabniški vmesnik, ki zunanjemu uporabniku omogoča komunikacijo s Hive. Hivejev varčni strežnik, podoben protokoloma JDBC ali ODBC, omogoča zunanjim odjemalcem komunikacijo s Hive prek omrežja.
Varnost
Apache Hive je integriran z varnostjo Hadoop, ki uporablja Kerberos za medsebojno preverjanje pristnosti odjemalec-strežnik. HDFS narekuje dovoljenja za novo ustvarjene datoteke v Apache Hive, kar vam omogoča, da jih odobrijo uporabnik, skupina in drugi.
Ključne funkcije
- Hive podpira zunanje tabele, ki vam omogočajo obdelavo podatkov, ne da bi jih shranili v HDFS.
- Omogoča tudi segmentacijo podatkov na ravni tabele za povečanje hitrosti.
- Apache Hive odlično izpolnjuje Hadoopove potrebe po vmesniku nizke ravni.
- Hive olajša povzemanje podatkov, poizvedovanje in analizo.
- HiveQL ne zahteva nobenih veščin programiranja; zadostuje preprosto razumevanje poizvedb SQL.
- Hive lahko uporabimo tudi za izvajanje ad hoc poizvedb za analizo podatkov.
- Je razširljiv, znan in prilagodljiv.
- HiveQL ne zahteva nobenih veščin programiranja; zadostuje preprosto razumevanje poizvedb SQL.
prednosti
Apache Hive omogoča poročila ob koncu dneva, dnevne ocene transakcij, ad hoc iskanja in analizo podatkov. Izčrpni vpogledi, ki jih zagotavlja Apache Hive, dajejo pomembne konkurenčne prednosti in vam olajšajo odzivanje na zahteve trga.
Tukaj je nekaj prednosti, da so takšne informacije na voljo:
- Enostavnost uporabe – S svojim jezikom, podobnim SQL, je poizvedovanje po podatkih enostavno razumeti.
- Pospešeno vstavljanje podatkov — Ker Apache Hive bere shemo brez preverjanja tipa tabele ali definicije sheme, podatkov ni treba brati, razčleniti in serializirati na disk v notranji obliki baze podatkov. Nasprotno pa je treba v običajni bazi podatkov podatke potrditi vsakič, ko se dodajo.
- Vrhunska razširljivost, prilagodljivost in stroškovna učinkovitost – Ker so podatki shranjeni v HDFS, lahko Apache Hive vsebuje 100 petabajtov podatkov, zaradi česar je veliko bolj razširljiva možnost kot tipična zbirka podatkov. Apache Hive kot storitev Hadoop v oblaku omogoča strankam, da hitro vrtijo navidezne strežnike navzgor in navzdol, da bi izpolnili spreminjajoče se delovne obremenitve.
- Obsežna delovna zmogljivost – Veliki nabori podatkov lahko obravnavajo do 100,000 poizvedb na uro.
Omejitve
- Na splošno imajo poizvedbe Apache Hive zelo veliko zamudo.
- Podpora za podpoizvedbe je omejena.
- Poizvedbe v realnem času in spremembe na ravni vrstic niso na voljo v Apache Hive.
- Ni podpore za materializirane poglede.
- V panju dejanja posodabljanja in brisanja niso podprta.
- Ni namenjeno za OLTP (spletni prehodni proces).
Začetek uporabe Apache Hive
Apache Hive je močan partner Hadoop, ki poenostavlja in poenostavlja vaše delovne poteke. Če želite kar najbolje izkoristiti Apache Hive, je brezhibna integracija bistvenega pomena. Prvi korak je, da gremo na spletna stran.
1. Namestitveni panj iz stabilne izdaje
Začnite s prenosom najnovejše stabilne izdaje Hive iz enega od zrcal za prenos Apache (glejte Izpusti panja). Nato je treba tarball razpakirati. To bo ustvarilo podmapo z imenom hive-xyz (kjer je xyz številka izdaje):
Nastavite spremenljivko okolja HIVE_HOME, da kaže na namestitveni imenik:
Na koncu dodajte $HIVE_HOME/bin v svoj PATH
:
2. Tekući panj
Hive uporablja Hadoop, zato:
- na svoji poti morate imeti Hadoop ALI
3. Delovanje DLL
Ustvarjanje tabele panj
ustvari tabelo z imenom pokes z dvema stolpcema, od katerih je prvi celo število, drugi pa niz.
Brskanje po tabelah
Seznam vseh tabel
Spreminjanje in izpuščanje tabel
Imena tabel je mogoče spremeniti in stolpce dodati ali zamenjati:
Omeniti velja, da REPLACE COLUMNS nadomesti vse obstoječe stolpce, hkrati pa spremeni samo strukturo tabele in ne podatkov. V tabeli je treba uporabiti izvorni SerDe. REPLACE COLUMNS lahko uporabite tudi za odstranitev stolpcev iz sheme tabele:
Spustne tabele
V Apache Hive je veliko dodatnih operacij in funkcij, o katerih lahko izveste na uradnem spletnem mestu.
zaključek
Definicija panja je vmesnik podatkovnega programa za poizvedovanje in analizo velikih podatkovnih nizov, ki so zgrajeni na vrhu Apache Hadoop. Strokovnjaki ga izberejo pred drugimi programi, orodji in programsko opremo, saj je zasnovan predvsem za obsežne podatke Hive in je enostaven za uporabo.
Upamo, da vam bo ta vadnica pomagala zagnati Apache Hive in izboljšati vaše delovne poteke. Sporočite nam v komentarjih.
Pustite Odgovori