HIVE架构
UI: 用于提交查询的客户端,hive自带有CLI(command line),现在推荐使用beeline DRIVER: 1.用于接收客户端提交的SQL,并实现了session控制 2.并提供了jdbc/odbc的fetch和execute功能 COMPILER: 编译器,负责解析SQL,并从METASTORE那里获取元数据生成执行计划,然后发给DRIVER 执行计划就是一个DAG(有向无环图) 组件: 1.Parser:将查询语句转变成一个parse tree 2.Semantic Analyser:将parse tree变成一个内部的查询表示(依然是基于查询块,而不是operator tree)。同时在这一步也会做语法检查,类型检查和类型隐式转换 3.Logical Plan Generator:将内部的查询表示转变成一个逻辑计划(包含一个operator tree),一些operator是关系代数的filter,join等,另一些是hive特定的,用于将逻辑计划变成一系列的map/reduce job,比如reduceSink operator(出现在map-reduce边界);这一步Optimizer也会对查询进行优化,比如map端聚合等 4.Query Plan Genertor:将逻辑计划转换成一系列的map-reduce tasks.做法是,通过对operator