Hadoop-pohjainen tietovarasto, joka sopii joihinkin korkean viiveen sovelluksiin (offline-kehitys), voi kartoittaa Hadoop-tiedostoihin tallennetut strukturoidut ja puolirakenteiset datatiedostot tietokantataulukkoon ja tarjota SQL:n kaltaisia tietoja taulukon A-kyselyn perusteella malli, nimeltään Hive Query Language (HQL), Hadoop-tiedostoihin tallennettujen suurten tietojoukkojen käyttämiseen ja analysoimiseen;
Hiven ydin on muuntaa HQL MapReduce-ohjelmaksi ja lähettää sitten ohjelma Hadoop-klusteriin suoritettavaksi.
Hive itse ei tallenna tai laske tietoja. Se luottaa täysin HDFS:ään ja MapReduceen. Hiven taulukot ovat puhtaasti loogisia.
Mikä on tietovarasto?
Tietovarasto itse ei "tuo" mitään dataa, ja sen tiedot tulevat erilaisista ulkoisista järjestelmistä;
Samaan aikaan tietovaraston itse ei tarvitse "kuluttaa" mitään dataa, ja tulokset ovat avoimia erilaisille ulkoisille sovelluksille;
Tästä syystä sitä kutsutaan "varastoksi" eikä "tehtaaksi";
Hiven arkkitehtuuri ja komponentit
Meta kauppa: Yleensä tallennettu relaatiotietokantoihin, kuten Mysql/derby, Hiven metatiedot sisältävät taulukon nimen, taulukon sarakkeet ja osiot ja niiden attribuutit, taulukon attribuutit (onko kyseessä ulkoinen taulukko jne.), hakemisto, jossa taulukon tiedot sijaitsevat jne.;
Kuljettaja : Ohjain, mukaan lukien syntaksin jäsentäjä, suunnitelman kääntäjä, optimoija ja suorittaja. Täydelliset HQL-kyselylausekkeet leksikaalisesta analyysistä, syntaksianalyysistä, käännöksestä, optimoinnista ja kyselysuunnitelman luomisesta. Luotu kyselysuunnitelma tallennetaan HDFS:ään ja sen jälkeen suoritetaan suoritusmoottorikutsulla;
Jäsenin (SQL Parser): Muunna SQL-merkkijonot abstraktiksi syntaksipuuksi AST ja suorita syntaksianalyysi AST:lle, kuten onko SQL:n semantiikka oikein, onko taulukko olemassa ja onko kenttiä olemassa;
Kääntäjä (fyysinen suunnitelma): Kääntää AST loogisen suoritussuunnitelman (DAG) luomiseksi;
Toteutus: Muunna looginen suoritussuunnitelma suoritettavaksi fyysiseksi suunnitelmaksi, joka on MapReduce/Spark-ohjelma;
HQL-suoritusprosessi
Tehdä pyyntö: Aloita suorituspyyntö käyttöliittymästä ohjaimelle;
Hanki toteutussuunnitelma: Ajuri lähettää käyttäjän pyynnön kääntäjälle suoritussuunnitelman saamiseksi;
Hae metatiedot: Kääntäjä saa asiaankuuluvat metatiedot Meta-säilöstä SQL-käskyn asiaankuuluvien taulukko- ja osiotietojen perusteella;
Palauta metatiedot: Meta Store palauttaa vastaavat metatiedot kääntäjälle;
Palautussuunnitelma: Jäsennä ja optimoi SQL taulukon ja osion metatietojen perusteella loogisten suoritussuunnitelmien luomiseksi. Suunnitelma on DAG-kaavio, ja jokainen vaihe vastaa MapReduce-kartta- tai vähennystoimintoa;
Suorita toteutussuunnitelma: Lähetä toteutussuunnitelma Execution Enginelle, joka lähettää loogisen suoritussuunnitelman Hadoopille suoritettavaksi MapReducen muodossa;
Juoksutulokset saadaan: Kuljettaja kerää juoksutulokset ja lähettää ne käyttöliittymään;