In this topic, we described about the Architecture in detail.
Let’s discuss about each component in detail.
- User Interface (UI)
- Interface to submit queries by the user
- The below are the list of UIs mostly used
- Web based GUI
- Command line interface
- HD Insight
- Driver & compiler
- The Driver component receives the queries
- The compiler component parses the query
- The compiler component creates the execution plan for the query after looking into the table structure and partition metadata from metastore.
- The component stores all the table structure information which includes column information as well.
- Execution engine
- The component executes the execution plan created by the compiler.
- It also manages the different dependencies between the various stages and executes it on appropriate system.
- HDFS or HBase
- Data storage technique to store the data.
- Contains the data which is retrieved by Execution engine to send as results to UI.
Hive interaction with Hadoop -
|1||executeQuery||The Query submitted from User Interface|
|2||getPlan||The driver passes the query to compiler to check syntax of the query and query plan of the query|
|3||getMetaData||The compiler sends the request to metastore|
|4||sendMetaData||Metastore sends the metadata to the compiler|
|5||sendPlan||Compiler verifies the requirement and sends the plan to driver|
|6||executePlan||Driver send the execution plan to execution engine|
|7||metaDataOps for DDLs||Execution engine gets the Metadata DDLs for table data from METASOTRE if required|
|8||executeJob||Execution Engine sends the job to JOB TRACKER and JOB Tracker will execute the job|
|9||jobDone||JOB TRACKER sends the jobDone Status to EXECUTION ENGINE along with the job output|
|10||sendResults||EXECUTION ENGINE sends the results to DRIVER|
|11||fetchResults||UI will fetch the results from DRIVER|