目录
HIVE的架构图
HIVE提交SQL之后的执行过程
通过客户端提交查询
dirver接收到查询,会创建session handle,并将该查询传递给编译器,生成逻辑执行计划
编译器会向metastore发送获取元数据的请求
metastore向编译器发送元数据,编译器使用元数据执行类型检查和语义分析。编译器会生成执行计划(DAG),对于MapReduce作业而言,执行计划包括map operator trees和reduce operator tree
编译器向Driver发送生成的物理执行计划
从编译器那里获取执行计划之后,Driver会向执行引擎发送执行计划
提交MR作业到YARN
返回查询结果
内部表外部表
内部表的数据默认情况下会保存在hive.metastore.warehouse.dir的设置项的路径下,外部表可以自由指定路径
当我们删除一个内部表的时候,对应的数据也会被删除,外部表不会
内部表不方便和其他工作共享数据
hive explain
查看执行计划的基本信息,即explain;
查看执行计划的扩展信息,即explain extended;
查看SQL数据输入依赖的信息,即explain dependency;
查看SQL操作相关权限的信息,即explain authorization;
查看SQL的向量化描述信息,即explain vectorization。