logo

Arhitectura stupului

Următoarea arhitectură explică fluxul de trimitere a interogării în Hive.

Arhitectura stupului

Client Hive

Hive permite scrierea de aplicații în diferite limbi, inclusiv Java, Python și C++. Acceptă diferite tipuri de clienți, cum ar fi: -

  • Thrift Server - Este o platformă de furnizor de servicii în mai multe limbi care servește cererile din toate acele limbaje de programare care acceptă Thrift.
  • Driver JDBC - Este folosit pentru a stabili o conexiune între aplicațiile hive și Java. Driverul JDBC este prezent în clasa org.apache.hadoop.hive.jdbc.HiveDriver.
  • Driver ODBC - Permite aplicațiilor care acceptă protocolul ODBC să se conecteze la Hive.

Servicii de stup

Următoarele sunt serviciile oferite de Hive: -

  • Hive CLI - Hive CLI (Command Line Interface) este un shell în care putem executa interogări și comenzi Hive.
  • Interfața utilizator Hive Web - Hive Web UI este doar o alternativă la Hive CLI. Acesta oferă o interfață grafică bazată pe web pentru executarea interogărilor și comenzilor Hive.
  • Hive MetaStore - Este un depozit central care stochează toate informațiile de structură a diferitelor tabele și partiții din depozit. De asemenea, include metadatele coloanei și informațiile despre tipul acesteia, serializatoarele și deserializatoarele care sunt utilizate pentru a citi și scrie date și fișierele HDFS corespunzătoare în care sunt stocate datele.
  • Server Hive - Se numește Apache Thrift Server. Acceptă cererea de la diferiți clienți și o furnizează lui Hive Driver.
  • Driver Hive - Primește interogări din diferite surse, cum ar fi UI web, CLI, Thrift și driverul JDBC/ODBC. Transferă interogările către compilator.
  • Hive Compiler - Scopul compilatorului este de a analiza interogarea și de a efectua analize semantice asupra diferitelor blocuri și expresii de interogare. Acesta convertește instrucțiunile HiveQL în joburi MapReduce.
  • Hive Execution Engine - Optimizer generează planul logic sub formă de DAG al sarcinilor de reducere a hărții și sarcinilor HDFS. În cele din urmă, motorul de execuție execută sarcinile primite în ordinea dependențelor acestora.