hive概述
Hive是基于Hadoop的一个数据仓库工具。可以将结构化的数据文件映射为一张’数据库表’,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
hive原理介绍
上图即是hive的原理图,hive主要有三个部分组成,分别是hive client,HIVESERVER和hive元数据;
client
hive client支持多种客户端的连接,包括beeline,jdbc和thirift,用于用户和hive server之间的交互;
HIVESERVER
当前是HIVESERVER2版本,分为三个部分,分别是接口,driver和执行器;hiveserver2接口提供了http协议的web服务接口和RPC协议的thrift服务接口,使得hive可以接受多种类型客户端的并发访问,并将客户端提交的SQL进行编译和转化成可执行的作业。这些作业提交给其他yarn进行处理;
元数据和元数据服务
hive的元数据中记录了HIVE库和对象的信息,包括hive表结构信息,分区结构信息,字段信息和相关统计信息;
简单介绍一个sql执行的过程
当客户端发送一个请求给hiveserver时,hiveserver接口接收到消息,并将这个消息给Driver,Driver用于维护整个session的周期,将sql交给编译器和优化器进行解析和优化,并将执行计划交给driver,由driver将作业提交给yarn进行执行;