logo

Kaptár építészet

A következő architektúra elmagyarázza a lekérdezés Hive-be történő benyújtásának folyamatát.

Kaptár építészet

Hive kliens

A Hive lehetővé teszi alkalmazások írását különböző nyelveken, beleértve a Java, Python és C++ nyelveket. Különféle típusú ügyfeleket támogat, mint például: -

  • Thrift Server – Ez egy többnyelvű szolgáltatói platform, amely kiszolgálja az összes olyan programozási nyelv kérését, amely támogatja a Thriftet.
  • JDBC illesztőprogram – A hive és a Java alkalmazások közötti kapcsolat létrehozására szolgál. A JDBC illesztőprogram az org.apache.hadoop.hive.jdbc.HiveDriver osztályban található.
  • ODBC illesztőprogram – Lehetővé teszi, hogy az ODBC protokollt támogató alkalmazások csatlakozzanak a Hive-hoz.

Hive szolgáltatások

A Hive által nyújtott szolgáltatások a következők: -

  • Hive CLI - A Hive CLI (Command Line Interface) egy shell, ahol Hive lekérdezéseket és parancsokat hajthatunk végre.
  • Hive webes felhasználói felület – A Hive webes felhasználói felülete a Hive CLI alternatívája. Web alapú grafikus felhasználói felületet biztosít a Hive lekérdezések és parancsok végrehajtásához.
  • Hive MetaStore - Ez egy központi adattár, amely a raktárban lévő különféle táblák és partíciók összes szerkezeti információját tárolja. Tartalmazza továbbá az oszlop metaadatait és típusinformációit, az adatok olvasására és írására használt szerializálókat és deszerializálókat, valamint a megfelelő HDFS fájlokat, ahol az adatokat tárolják.
  • Hive Server – Apache Thrift Server néven hivatkoznak rá. Elfogadja a különböző ügyfelek kérését, és átadja a Hive Drivernek.
  • Hive Driver – Lekérdezéseket fogad különböző forrásokból, például webes felhasználói felületről, CLI-ről, Thrift-ről és JDBC/ODBC-illesztőprogramról. A lekérdezéseket továbbítja a fordítónak.
  • Hive Compiler – A fordító célja a lekérdezés elemzése és a különböző lekérdezési blokkok és kifejezések szemantikai elemzése. A HiveQL utasításokat MapReduce-feladatokká alakítja.
  • Hive Execution Engine – Az optimalizáló létrehozza a logikai tervet DAG formájában a térképcsökkentési és HDFS-feladatokból. Végül a végrehajtó motor a beérkező feladatokat függőségi sorrendben hajtja végre.