Tālāk sniegtā arhitektūra izskaidro vaicājuma iesniegšanas plūsmu Hive.
Hive klients
Hive ļauj rakstīt lietojumprogrammas dažādās valodās, tostarp Java, Python un C++. Tas atbalsta dažāda veida klientus, piemēram: -
- Thrift Server — tā ir starpvalodu pakalpojumu sniedzēja platforma, kas apkalpo pieprasījumus no visām tām programmēšanas valodām, kuras atbalsta Thrift.
- JDBC draiveris — to izmanto, lai izveidotu savienojumu starp stropu un Java lietojumprogrammām. JDBC draiveris atrodas klasē org.apache.hadoop.hive.jdbc.HiveDriver.
- ODBC draiveris — tas ļauj lietojumprogrammām, kas atbalsta ODBC protokolu, izveidot savienojumu ar Hive.
Stropu pakalpojumi
Hive sniegtie pakalpojumi ir šādi:
- Hive CLI — Hive CLI (komandrindas interfeiss) ir apvalks, kurā varam izpildīt Hive vaicājumus un komandas.
- Hive Web lietotāja interfeiss — Hive Web lietotāja saskarne ir tikai Hive CLI alternatīva. Tas nodrošina tīmekļa GUI Hive vaicājumu un komandu izpildei.
- Hive MetaStore – tā ir centrālā repozitorija, kurā tiek glabāta visa informācija par dažādu noliktavā esošo tabulu un nodalījumu struktūru. Tajā ir iekļauti arī kolonnas metadati un informācija par to tipu, serializētāji un deserializatori, kas tiek izmantoti datu lasīšanai un rakstīšanai, un atbilstošie HDFS faili, kuros dati tiek glabāti.
- Hive serveris — to dēvē par Apache Thrift serveri. Tā pieņem pieprasījumu no dažādiem klientiem un nodrošina to Hive Driver.
- Hive Driver — tas saņem vaicājumus no dažādiem avotiem, piemēram, tīmekļa lietotāja interfeisa, CLI, Thrift un JDBC/ODBC draivera. Tas pārsūta vaicājumus uz kompilatoru.
- Hive kompilators — kompilatora mērķis ir parsēt vaicājumu un veikt dažādu vaicājumu bloku un izteiksmju semantisko analīzi. Tas pārvērš HiveQL paziņojumus MapReduce darbos.
- Hive Execution Engine — optimizētājs ģenerē loģisko plānu kartes samazināšanas uzdevumu un HDFS uzdevumu DAG formātā. Galu galā izpildprogramma izpilda ienākošos uzdevumus to atkarību secībā.