Tässä opetusohjelmassa opit-
- Mikä on Hive?
- Hive-arkkitehtuuri
- Erilaiset pesätilat
- Mikä on Hive Server2 (HS2)?
Mikä on Hive?
Hive on Hadoop Distributed File System (HDFS): n päälle kehitetty ETL- ja tietovarastointityökalu. Hive tekee työstä helppoa esimerkiksi
- Tietojen kapselointi
- Tapauskohtaiset kyselyt
- Suurten tietojoukkojen analyysi
Hiveen tärkeät ominaisuudet
- Hivessa taulukot ja tietokannat luodaan ensin ja sitten tiedot ladataan näihin taulukoihin.
- Hive tietovarastona, joka on tarkoitettu vain taulukoihin tallennettujen jäsenneltyjen tietojen hallintaan ja kyselyihin.
- Strukturoidun datan käsittelyssä Map Reducessa ei ole optimointi- ja käytettävyysominaisuuksia, kuten UDF: itä, mutta Hive-kehyksessä on. Kyselyn optimointi tarkoittaa tehokasta tapaa kyselyn suorittamiseen suorituskyvyn kannalta.
- Hiven SQL-inspiroima kieli erottaa käyttäjän Map Reduce -ohjelmoinnin monimutkaisuudesta. Se käyttää uudelleen relaatiotietokantamaailmasta tuttuja käsitteitä, kuten taulukoita, rivejä, sarakkeita ja kaavioita jne. Oppimisen helpottamiseksi.
- Hadoopin ohjelmointi toimii tasaisilla tiedostoilla. Joten Hive voi käyttää hakemistorakenteita tietojen "osiointiin" parantamaan tiettyjen kyselyjen suorituskykyä.
- Uusi ja tärkeä Hive-komponentti eli Metastore, jota käytetään kaaviotietojen tallentamiseen. Tämä Metastore sijaitsee tyypillisesti relaatiotietokannassa. Voimme olla vuorovaikutuksessa Hiven kanssa esimerkiksi
- Web-käyttöliittymä
- Java Database Connectivity (JDBC) -liitäntä
- Suurin osa vuorovaikutuksista tapahtuu yleensä komentoriviliittymän (CLI) kautta. Hive tarjoaa CLI: n Hive-kyselyjen kirjoittamiseen Hive Query Language (HQL) -kielellä
- Yleensä HQL-syntaksi on samanlainen kuin useimmat data-analyytikot tuntevat SQL-syntaksit. Alla olevassa esimerkkikyselyssä näkyvät kaikki mainitussa taulukon nimessä olevat tietueet.
- Esimerkkikysely : Valitse * taulukosta
- Esimerkkikysely : Valitse * taulukosta
- Hive tukee neljää tiedostomuotoa, jotka ovat TEXTFILE, SEQUENCEFILE, ORC ja RCFILE (Tallenna saraketiedosto ).
- Yhden käyttäjän metatietojen tallentamiseen Hive käyttää derby-tietokantaa ja useiden käyttäjien metatietoja tai jaettuja metatietoja Hive käyttää MYSQL: ää.
MySQL: n määrittämiseksi tietokannaksi ja metatietojen tallentamiseksi tarkista opas "Asennus ja konfigurointi HIVE: lle ja MYSQL: lle"
Joitakin avainsanoja Hive:
- Suurin ero HQL: n ja SQL: n välillä on se, että Hive-kysely suoritetaan Hadoopin infrastruktuurilla perinteisen tietokannan sijaan.
- Hive-kyselyn suoritus tulee olemaan kuin sarja automaattisesti luotuja kartan vähentäviä töitä.
- Hive tukee osio- ja ryhmäkonsepteja tietojen helpoksi noutamiseksi, kun asiakas suorittaa kyselyn.
- Hive tukee räätälöityjä UDF (User Defined Functions) -toimintoja tietojen puhdistamiseen, suodattamiseen jne. Ohjelmoijien vaatimusten mukaan voidaan määrittää Hive UDF: t.
Hive Vs: n relaatiotietokannat: -
Hiveä käyttämällä voimme suorittaa joitain erikoisia toimintoja, joita ei saavuteta relaatiotietokannoissa. Suurelle määrälle tietoja, jotka ovat beta-tavuina, on tärkeää kysellä sitä ja saada tuloksia sekunneissa. Ja Hive tekee tämän melko tehokkaasti, se käsittelee kyselyt nopeasti ja tuottaa tuloksia toisen kerran.
Katsotaan nyt, mikä tekee Hivesta niin nopean.
Joitakin keskeisiä eroja Hive- ja relaatiotietokantojen välillä ovat seuraavat;
Relaatiotietokannat ovat " Schema on READ ja Schema on Write ". Luo ensin taulukko ja lisää sitten tiedot kyseiseen taulukkoon. Relaatiotietokantataulukoissa voidaan suorittaa toimintoja, kuten lisäykset, päivitykset ja muutokset.
Hive on " Kaavio vain LUE ". Joten toiminnot, kuten päivitys, muutokset jne., Eivät toimi tämän kanssa. Koska tyypillisen klusterin Hive-kysely toimii useilla tietosolmuilla. Joten ei ole mahdollista päivittää ja muokata tietoja useissa solmuissa. (Hive-versiot alle 0,13)
Hive tukee myös " LUE monta kirjoita kerran " -mallia. Mikä tarkoittaa, että taulukon lisäämisen jälkeen voimme päivittää taulukon uusimmissa Hive-versioissa.
HUOMAUTUS : Hiveen uudessa versiossa on kuitenkin päivitetyt ominaisuudet. Hive-versiot (Hive 0.14) tarjoavat päivitys- ja poistovaihtoehdot uusina ominaisuuksina
Hive-arkkitehtuuri
Yllä oleva kuvakaappaus selittää Apache Hive -arkkitehtuurin yksityiskohtaisesti
Hive koostuu pääasiassa kolmesta ydinosasta
- Hive-asiakkaat
- Hive-palvelut
- Hive-varastointi ja tietojenkäsittely
Hive-asiakkaat:
Hive tarjoaa erilaisia ohjaimia yhteydenpitoon erityyppisten sovellusten kanssa. Thrift-pohjaisiin sovelluksiin se tarjoaa Thrift-asiakkaan viestintään.
Java-sovelluksiin se tarjoaa JDBC-ohjaimet. Muut kuin minkä tahansa tyyppiset sovellukset toimittivat ODBC-ohjaimia. Nämä asiakkaat ja ohjaimet vuorostaan kommunikoivat jälleen Hive-palvelimen kanssa Hive-palveluissa.
Hive-palvelut:
Asiakkaan vuorovaikutus Hiven kanssa voidaan suorittaa Hive Services -palvelun kautta. Jos asiakas haluaa suorittaa kyselyihin liittyviä toimintoja Hivessa, sen on oltava yhteydessä Hive Services -palveluun.
CLI on komentoriviliitäntä, joka toimii Hive-palveluna DDL (Data Definition Language) -toiminnoille. Kaikki ohjaimet kommunikoivat Hive-palvelimen ja Hive-palvelujen pääohjaimen kanssa yllä olevan arkkitehtuurikaavion mukaisesti.
Hive-palveluissa oleva kuljettaja edustaa pääohjainta, ja se kommunikoi kaiken tyyppiset JDBC-, ODBC- ja muut asiakaskohtaiset sovellukset. Kuljettaja käsittelee eri sovellusten pyynnöt metakauppa- ja kenttäjärjestelmille jatkokäsittelyä varten.
Hive-varastointi ja tietojenkäsittely:
Hive-palvelut, kuten metakauppa, tiedostojärjestelmä ja Job Client, vuorottelevat Hive-tallennustilan kanssa ja suorittavat seuraavat toimet
- Hiveen luotujen taulukoiden metatiedot on tallennettu Hive "Meta storage database" -tietokantaan.
- Kyselytulokset ja taulukoihin ladatut tiedot tallennetaan Hadoop-klusteriin HDFS: ssä.
Työn suoritusvirta:
Yllä olevasta kuvakaappauksesta voimme ymmärtää Hive-palvelun työn suoritusvirran Hivessa
Hiveen tietovirta käyttäytyy seuraavalla tavalla;
- Kyselyn suorittaminen käyttöliittymästä (käyttöliittymä)
- Kuljettaja on vuorovaikutuksessa Compilerin kanssa saadakseen suunnitelman. (Tässä suunnitelma viittaa kyselyn suorittamiseen) -prosessiin ja siihen liittyviin metatietojen keräämiseen
- Kääntäjä luo suunnitelman suoritettavasta työstä. Meta-myymälän kanssa kommunikoiva kääntäjä metatietopyynnön saamiseksi
- Meta-kauppa lähettää metatiedot takaisin kääntäjälle
- Kääntäjä kommunikoi ohjaimen kanssa ehdotetun suunnitelman kanssa kyselyn suorittamiseksi
- Kuljettaja Suoritussuunnitelmien lähettäminen Suorituskoneelle
- Execution Engine (EE) toimii siltana Hiven ja Hadoopin välillä kyselyn käsittelemiseksi. DFS-toimintoihin.
- EE: n tulisi ensin ottaa yhteyttä nimisolmuun ja sitten datasolmuihin saadakseen taulukoihin tallennetut arvot.
- EE aikoo hakea halutut tietueet tietosolmuista. Taulukoiden todelliset tiedot ovat vain tietosolmussa. Nimesolmusta se hakee vain kyselyn metatiedot.
- Se kerää todellisia tietoja mainittuun kyselyyn liittyvistä solmuista
- Execution Engine (EE) kommunikoi kaksisuuntaisesti Hivessa olevan metakaupan kanssa DDL (Data Definition Language) -toimintojen suorittamiseksi. Tässä tehdään DDL-operaatiot, kuten CREATE, DROP ja ALTERING taulukot ja tietokannat. Metakauppa tallentaa tietoja vain tietokannan nimistä, taulukoiden nimistä ja sarakkeiden nimistä. Se hakee tietoja mainittuun kyselyyn.
- Execution Engine (EE) vuorostaan kommunikoi Hadoop-demonien, kuten nimisolmun, datasolmujen ja työnseurannan kanssa, suorittaakseen kyselyn Hadoop-tiedostojärjestelmän päällä
- Haetaan tuloksia ohjaimelta
- Tulosten lähettäminen Suorituskoneeseen. Kun tulokset on haettu datasolmuista EE: lle, se lähettää tulokset takaisin ohjaimelle ja käyttöliittymään (käyttöliittymä)
Hive Jatkuvasti yhteydessä Hadoop-tiedostojärjestelmään ja sen demoneihin Execution-moottorin kautta. Työn vuokaavion pisteviiva osoittaa Execution-moottorin viestinnän Hadoop-demonien kanssa.
Erilaiset pesätilat
Hive voi toimia kahdessa tilassa riippuen Hadoopin datasolmujen koosta.
Nämä tilat ovat
- Paikallinen tila
- Kartan vähennystila
Milloin käytetään paikallista tilaa:
- Jos Hadoop asennettiin näennäistilassa alle yhdellä solmulla, käytämme Hiveä tässä tilassa
- Jos datakoko on pienempi ajallisesti rajoitettuna yhteen paikalliseen koneeseen, voimme käyttää tätä tilaa
- Käsittely tapahtuu erittäin nopeasti pienemmissä paikallisessa koneessa olevissa tietojoukoissa
Milloin kartan vähennystilaa käytetään:
- Jos Hadoopilla on useita datasolmuja ja data on jaettu eri solmuille, käytämme Hiveä tässä tilassa
- Se suorittaa suuren määrän tietojoukkoja ja kyselyjä, jotka suoritetaan rinnakkain
- Suuremmalla, paremmalla suorituskyvyllä toimivien tietojoukkojen käsittely voidaan saavuttaa tällä tilalla
Hivessä voimme asettaa tämän ominaisuuden mainitsemaan, minkä tilan Hive voi toimia? Oletusarvon mukaan se toimii Kartan pienennys -tilassa, ja paikallisessa tilassa sinulla voi olla seuraava asetus.
Hive toimimaan paikallisessa tilassa
SET mapred.job.tracker = paikallinen;
Hive-versiosta 0.7 alkaen se tukee tilaa, jolla karttojen vähentäminen suoritetaan automaattisesti paikallisessa tilassa.
Mikä on Hive Server2 (HS2)?
HiveServer2 (HS2) on palvelinrajapinta, joka suorittaa seuraavat toiminnot:
- Antaa etäasiakkaiden suorittaa kyselyjä Hiveä vastaan
- Nouda mainittujen kyselyjen tulokset
Uusimmasta versiosta lähtien sillä on joitain lisäominaisuuksia, jotka perustuvat Thrift RPC: hen, kuten;
- Usean asiakkaan samanaikainen käyttö
- Todennus
Yhteenveto:
Hive on Hadoop-ekosysteemin päällä oleva ETL- ja tietovarastotyökalu, jota käytetään jäsenneltyjen ja osittain jäsenneltyjen tietojen käsittelyyn.
- Hive on Hadoop-ekosysteemissä oleva tietokanta, joka suorittaa DDL- ja DML-operaatioita, ja se tarjoaa joustavan kyselykielen, kuten HQL, parempaan kyselyyn ja tietojen käsittelyyn.
- Se tarjoaa niin monia ominaisuuksia verrattuna RDMS: ään, jolla on tiettyjä rajoituksia.
Käyttäjäkohtainen logiikka asiakkaan vaatimusten täyttämiseksi.
- Se tarjoaa mahdollisuuden kirjoittaa ja käyttää mukautettuja komentosarjoja ja käyttäjän määrittelemiä toimintoja.
- Lisäksi se tarjoaa osiot ja ämpärit tallennuskohtaisiin logiikoihin.