导读
什么是Hive?
Hive是如何运行的?
Hive如何使用?【重点】
什么是Hive?
一句话来说,Hive是基于Hadoop的数据仓库,和MySQL语法相似,但是是完全不同的两种东西,Hive是在HDFS上层的封装
实质:将HQL语句转换为MR程序,如下图所示
我想大家肯定有疑问,为啥需要用HIve?
Hive主要就是写SQL,简单易上手,比写代码方便,相对于繁杂的MR任务来说
Hive和RDMS数据库的区别?
除了SQL语句高度相似外没有任何联系,具体区别见下图
Hive由哪几部分组成?
学习过MySQL的同学应该对下图高度熟悉,和MySQL非常类似
具体几部分功能:
client:这个毫无疑问,就是提供接口供用户访问的
Meta Store:存储元数据,信息包括 DataBase,表名,列类型以及表的分区所在目录
Driver 完成HQL查询语句的编译,优化,以及生成逻辑执行计划的生成
具体分为以下几部分,解释器:将HiveSQL语句转换为抽象语法树AST
编译器:将AST编译为逻辑执行计划
优化器:对逻辑执行计划进行优化
执行器:调用底层的运行框架执行逻辑执行计划
Hive真的很香吗?
不然Hive也是有缺点的,也就是只能查数据,不支持增删改,当然也就不存在事务了
Hive是如何运行的?
上图