hive outline
hive 简介
hive是基于 Hadoop 的一个数据仓库工具
,它主要有2个功能:
- 可以将结构化的数据文件映射为一张数据库表
- 可以将 HQL 语句转换为 MapReduce 程序
hive 架构
- hive 是由驱动器组成,驱动器主要由4个组件组成(解析器、编译器、优化器、执行器)
- hive本身不存储数据,数据是存储在hdfs上
- hive的元数据默认是存储在detby数据库中,但是它支持一个客户端进行连接,为了支持多客户端连接,可将元数据存储在关系型数据库中(如mysql)
- hive本身不参与数据计算,数据计算交由计算引擎,hive支持的计算引擎由3种(MapReduce默认、Tez、Spark )
hive 数据模型
- 库
Hive的数据都是存储在HDFS上的,默认有一个根目录。由文件 hive-site.xml 中的参数hive.metastore.warehouse.dir指定。默认值为 /user/hive/warehouse
比如
名为itcast的数据库存储路径为:/user/hive/warehouse/itcast.db
- 表
- 表所对应的数据是存储 在HDFS上的,而表相关的元数据是存储在关系型数据库中
- hive有两种类型的表:内部表(默认表)和外部表
- 分区
- 分区是hive的一种优化手段。分区是
指根据表的字段
(例如“日期day”)将表划分为不同分区 - 一个分区表示一个文件夹
- 分桶
分桶是hive的一种优化手段。分桶是指根据表中字段的值
(例如“编号ID”),经过hash取余
规则将数据文件划分成指定的若干个小文件