一、什么是Hive
Hive是建立在Hadoop上的数据仓库基础架构。它定义了简单的类SQL查询语句,称为HQL,HQL语言也支持用户自定义SQL函数,通过MR任务来处理复杂的分析任务。
- Hive中包含SQL解析引擎,它会将SQL语句转换成MR job在Hadoop中执行
- Hive中的数据表在HDFS中的体现是文件
- Hive数据存储是基于Hadoop的HDFS的,Hive默认直接加载文本文件(TextFile),还支持SequenceFile,RCFile等
二、Hive系统架构
从左往右看图:
1、用户接口
包含CLI,Hive Server,Hive Web。Cli即Shell命令行,表示我们可以通过shell命令执行操作Hive,Hive Server 一般通过JDBC/ODBC操作,数据java的操作方式,Hive Web一般使用最多的事HUE,HUE直接提供窗口界面访问,操作。
2、Driver
包含编译器、优化器、执行器;Driver可以完成Hive的查询语句从语法分析、编译、优化以及查询计划的生成。生成的查询计划最终会存储在HDFS中,并随后通过MapReduce调用执行。
3、Hadoop
Hive的数据存储最终会以文件的形式存在HDFS上,Hive的大多数执行会转换成MR任务,通过MR执行引擎分析处理。
4、Metastore(元数据)
所谓元数据信息指的是表的信息如表名、字段名、字段类型、表属性(是否外部表、视图、分区表)等对表描述的数据信息,元数据信息一般会维护在数据库中,常用derby和mysql,其中mysql使用最多
三、数据库与数据仓库
数据库和数据仓库简单的理解可以理解为,数据仓库是包含数据库。数据仓库的数据源可以是数据库、文件等数据。
优秀博文参考:
详解数据仓库和数据库区别:https://blog.csdn.net/maiduiyizu/article/details/80371410
数据库与数据仓库本质的区别:https://www.zhihu.com/question/20623931
四、Hive安装部署
参考博文:https://blog.csdn.net/weixin_43861175/article/details/90372513