Architettura dell'alveare

Architettura dell'alveare

L'architettura seguente spiega il flusso di invio della query in Hive.

Architettura dell

Cliente Alveare

Hive consente di scrivere applicazioni in vari linguaggi, tra cui Java, Python e C++. Supporta diversi tipi di client come: -

  • Thrift Server: è una piattaforma di fornitore di servizi multilingue che soddisfa la richiesta di tutti quei linguaggi di programmazione che supportano Thrift.
  • Driver JDBC: viene utilizzato per stabilire una connessione tra hive e le applicazioni Java. Il driver JDBC è presente nella classe org.apache.hadoop.hive.jdbc.HiveDriver.
  • Driver ODBC: consente alle applicazioni che supportano il protocollo ODBC di connettersi a Hive.

Servizi dell'alveare

Di seguito sono riportati i servizi forniti da Hive: -

  • Hive CLI - La Hive CLI (Command Line Interface) è una shell in cui possiamo eseguire query e comandi Hive.
  • Interfaccia utente Web Hive: l'interfaccia utente Web Hive è solo un'alternativa alla CLI Hive. Fornisce una GUI basata sul Web per l'esecuzione di query e comandi Hive.
  • Hive MetaStore - È un repository centrale che memorizza tutte le informazioni sulla struttura di varie tabelle e partizioni nel magazzino. Include anche i metadati della colonna e le informazioni sul tipo, i serializzatori e i deserializzatori utilizzati per leggere e scrivere i dati e i file HDFS corrispondenti in cui sono archiviati i dati.
  • Hive Server: viene chiamato Apache Thrift Server. Accetta la richiesta da diversi client e la fornisce a Hive Driver.
  • Hive Driver: riceve query da diverse fonti come interfaccia utente Web, CLI, Thrift e driver JDBC/ODBC. Trasferisce le query al compilatore.
  • Compilatore Hive: lo scopo del compilatore è analizzare la query ed eseguire analisi semantiche sui diversi blocchi ed espressioni di query. Converte le istruzioni HiveQL in lavori MapReduce.
  • Motore di esecuzione Hive: l'ottimizzatore genera il piano logico sotto forma di DAG di attività di riduzione della mappa e attività HDFS. Alla fine, il motore di esecuzione esegue le attività in arrivo nell'ordine delle loro dipendenze.