L'arquitectura següent explica el flux d'enviament de la consulta a Hive.
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.