Teknologian jakaminen

Johdatus Hiveen ja sen arkkitehtuuriin

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Mikä on Hive?

  • 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

Lisää kuvan kuvaus tähän

  • 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;
    • Optimizer (kyselyn optimoija): Optimoi looginen suoritussuunnitelma;
    • Toteutus: Muunna looginen suoritussuunnitelma suoritettavaksi fyysiseksi suunnitelmaksi, joka on MapReduce/Spark-ohjelma;

HQL-suoritusprosessi

Lisää kuvan kuvaus tähän

  1. Tehdä pyyntö: Aloita suorituspyyntö käyttöliittymästä ohjaimelle;
  2. Hanki toteutussuunnitelma: Ajuri lähettää käyttäjän pyynnön kääntäjälle suoritussuunnitelman saamiseksi;
  3. Hae metatiedot: Kääntäjä saa asiaankuuluvat metatiedot Meta-säilöstä SQL-käskyn asiaankuuluvien taulukko- ja osiotietojen perusteella;
  4. Palauta metatiedot: Meta Store palauttaa vastaavat metatiedot kääntäjälle;
  5. 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;
  6. Suorita toteutussuunnitelma: Lähetä toteutussuunnitelma Execution Enginelle, joka lähettää loogisen suoritussuunnitelman Hadoopille suoritettavaksi MapReducen muodossa;
  7. Juoksutulokset saadaan: Kuljettaja kerää juoksutulokset ja lähettää ne käyttöliittymään;