logo

Arquitectura Rusc

L'arquitectura següent explica el flux d'enviament de la consulta a Hive.

Arquitectura Rusc

Hive Client

Hive permet escriure aplicacions en diversos idiomes, inclosos Java, Python i C++. Admet diferents tipus de clients com ara: -

  • Servidor Thrift: és una plataforma de proveïdor de serveis multiidioma que atén la sol·licitud de tots aquells llenguatges de programació que admeten Thrift.
  • Controlador JDBC: s'utilitza per establir una connexió entre el rusc i les aplicacions Java. El controlador JDBC està present a la classe org.apache.hadoop.hive.jdbc.HiveDriver.
  • Controlador ODBC: permet que les aplicacions que admeten el protocol ODBC es connectin a Hive.

Serveis Hive

Els següents són els serveis que ofereix Hive: -

  • Hive CLI: la Hive CLI (Command Line Interface) és un shell on podem executar consultes i ordres Hive.
  • Interfície d'usuari web de Hive: la interfície d'usuari web de Hive és només una alternativa a la CLI de Hive. Proporciona una GUI basada en web per executar consultes i ordres Hive.
  • Hive MetaStore: és un dipòsit central que emmagatzema tota la informació d'estructura de diverses taules i particions al magatzem. També inclou metadades de columna i la seva informació de tipus, els serialitzadors i deserialitzadors que s'utilitzen per llegir i escriure dades i els fitxers HDFS corresponents on s'emmagatzemen les dades.
  • Servidor Hive: es coneix com Apache Thrift Server. Accepta la sol·licitud de diferents clients i la proporciona a Hive Driver.
  • Hive Driver: rep consultes de diferents fonts com la interfície d'usuari web, CLI, Thrift i el controlador JDBC/ODBC. Transfereix les consultes al compilador.
  • Compilador Hive: el propòsit del compilador és analitzar la consulta i realitzar anàlisi semàntica en els diferents blocs i expressions de consulta. Converteix declaracions HiveQL en treballs de MapReduce.
  • Hive Execution Engine - Optimizer genera el pla lògic en forma de DAG de tasques de reducció de mapes i tasques HDFS. Al final, el motor d'execució executa les tasques entrants en l'ordre de les seves dependències.