Hive arkitektur

Hive arkitektur

Följande arkitektur förklarar flödet av inlämning av en fråga till Hive.

Hive arkitektur

Hive klient

Hive tillåter att skriva applikationer på olika språk, inklusive Java, Python och C++. Det stöder olika typer av klienter som: -

  • Thrift Server - Det är en tvärspråkig tjänsteleverantörsplattform som betjänar begäran från alla de programmeringsspråk som stöder Thrift.
  • JDBC-drivrutin - Den används för att upprätta en anslutning mellan hive och Java-applikationer. JDBC-drivrutinen finns i klassen org.apache.hadoop.hive.jdbc.HiveDriver.
  • ODBC-drivrutin - Den tillåter applikationer som stöder ODBC-protokollet att ansluta till Hive.

Hive Services

Följande tjänster tillhandahålls av Hive:-

  • Hive CLI - Hive CLI (Command Line Interface) är ett skal där vi kan köra Hive-frågor och kommandon.
  • Hive Web User Interface - Hive Web UI är bara ett alternativ till Hive CLI. Det tillhandahåller ett webbaserat GUI för att köra Hive-frågor och kommandon.
  • Hive MetaStore - Det är ett centralt arkiv som lagrar all strukturinformation för olika tabeller och partitioner i lagret. Den innehåller också metadata för kolumn och dess typinformation, serializers och deserializers som används för att läsa och skriva data och motsvarande HDFS-filer där data lagras.
  • Hive Server - Den kallas Apache Thrift Server. Den accepterar begäran från olika klienter och tillhandahåller den till Hive Driver.
  • Hive Driver - Den tar emot frågor från olika källor som webbgränssnitt, CLI, Thrift och JDBC/ODBC-drivrutin. Den överför frågorna till kompilatorn.
  • Hive Compiler - Syftet med kompilatorn är att analysera frågan och utföra semantisk analys av de olika frågeblocken och uttrycken. Det konverterar HiveQL-satser till MapReduce-jobb.
  • Hive Execution Engine - Optimizer genererar den logiska planen i form av DAG av map-reduce-uppgifter och HDFS-uppgifter. I slutändan exekverar exekveringsmotorn de inkommande uppgifterna i ordning efter deras beroenden.