Ši architektūra paaiškina užklausos pateikimo į Hive srautą.
„Hive“ klientas
„Hive“ leidžia rašyti programas įvairiomis kalbomis, įskaitant „Java“, „Python“ ir „C++“. Jis palaiko įvairių tipų klientus, tokius kaip: -
- „Thift Server“ – tai kelių kalbų paslaugų teikėjo platforma, teikianti užklausas iš visų tų programavimo kalbų, kurios palaiko „Thift“.
- JDBC tvarkyklė – naudojama ryšiui tarp „Hive“ ir „Java“ programų užmegzti. JDBC tvarkyklė yra klasėje org.apache.hadoop.hive.jdbc.HiveDriver.
- ODBC tvarkyklė – leidžia programoms, palaikančioms ODBC protokolą, prisijungti prie „Hive“.
Avilių paslaugos
„Hive“ teikiamos šios paslaugos:
- Hive CLI – Hive CLI (komandinės eilutės sąsaja) yra apvalkalas, kuriame galime vykdyti Hive užklausas ir komandas.
- Hive žiniatinklio vartotojo sąsaja – Hive žiniatinklio vartotojo sąsaja yra tik Hive CLI alternatyva. Jame pateikiama žiniatinklio GUI, skirta Hive užklausoms ir komandoms vykdyti.
- Hive MetaStore – tai centrinė saugykla, kurioje saugoma visa įvairių sandėlyje esančių lentelių ir skaidinių struktūros informacija. Tai taip pat apima stulpelio metaduomenis ir informaciją apie jo tipą, serializatorius ir deserializatorius, kurie naudojami duomenims skaityti ir rašyti, ir atitinkamus HDFS failus, kuriuose saugomi duomenys.
- Hive serveris – jis vadinamas „Apache Thrift Server“. Ji priima užklausą iš skirtingų klientų ir pateikia ją Hive Driver.
- „Hive Driver“ – ji gauna užklausas iš įvairių šaltinių, tokių kaip žiniatinklio vartotojo sąsaja, CLI, „Thrift“ ir JDBC/ODBC tvarkyklė. Jis perduoda užklausas kompiliatoriui.
- Avilio kompiliatorius – kompiliatoriaus paskirtis yra išanalizuoti užklausą ir atlikti skirtingų užklausų blokų ir išraiškų semantinę analizę. Jis paverčia HiveQL teiginius į MapReduce užduotis.
- Hive Execution Engine – optimizavimo priemonė generuoja loginį planą žemėlapio mažinimo užduočių ir HDFS užduočių DAG forma. Galiausiai vykdomasis variklis atlieka gaunamas užduotis jų priklausomybės tvarka.