Sljedeća arhitektura objašnjava tijek podnošenja upita u Hive.
Hive klijent
Hive omogućuje pisanje aplikacija na raznim jezicima, uključujući Javu, Python i C++. Podržava različite vrste klijenata kao što su:-
- Thrift Server - To je višejezična platforma pružatelja usluga koja poslužuje zahtjeve svih onih programskih jezika koji podržavaju Thrift.
- JDBC Driver - Koristi se za uspostavljanje veze između košnice i Java aplikacija. JDBC upravljački program prisutan je u klasi org.apache.hadoop.hive.jdbc.HiveDriver.
- ODBC upravljački program - omogućuje aplikacijama koje podržavaju ODBC protokol da se povežu na Hive.
Usluge košnice
Sljedeće su usluge koje pruža Hive:-
- Hive CLI - Hive CLI (Command Line Interface) je ljuska u kojoj možemo izvršavati Hive upite i naredbe.
- Hive Web korisničko sučelje - Hive Web UI je samo alternativa Hive CLI. Omogućuje web-bazirano GUI za izvršavanje Hive upita i naredbi.
- Hive MetaStore - To je središnji repozitorij koji pohranjuje sve informacije o strukturi različitih tablica i particija u skladištu. Također uključuje metapodatke stupca i njegovu vrstu informacija, serijalizatore i deserializatore koji se koriste za čitanje i pisanje podataka i odgovarajuće HDFS datoteke u kojima su podaci pohranjeni.
- Hive Server - naziva se Apache Thrift Server. Prihvaća zahtjeve različitih klijenata i dostavlja ih Hive Driveru.
- Hive Driver - prima upite iz različitih izvora kao što su web sučelje, CLI, Thrift i JDBC/ODBC upravljački program. Prenosi upite kompajleru.
- Hive Compiler - Svrha prevoditelja je raščlaniti upit i izvršiti semantičku analizu na različitim blokovima i izrazima upita. Pretvara HiveQL izjave u MapReduce poslove.
- Hive Execution Engine - Optimizer generira logički plan u obliku DAG-a zadataka smanjenja karte i HDFS zadataka. Na kraju, pogon za izvršavanje izvršava dolazne zadatke prema redoslijedu njihovih ovisnosti.