hive
所属分类 bigdata
浏览量 1417
构建在Hadoop之上的数据仓库,数据计算使用MR,数据存储使用HDFS
类 SQL 查询语言 HQL
数据存储 hdfs
数据格式 用户指定
列分隔符 行分隔符 存储格式
四种存储格式
TextFile
RCFile
ORCFile
Parquet
hive四种存储格式
延迟高 全表扫描 + MR 机制
元数据存储(metastore)
derby MySQL
表与分区信息 列信息 序列化与反序列化器 等
数据模型
database table partition bucket
内部表 /分区表 /外部表 /桶表
视图
一个Table 对应一个目录
一个Partition对应表的一个子目录
桶表 hash运算 放在不同的文件中
内部表 管理表
数据保存到 Hive 自己的数据仓库目录中:/usr/hive/warehouse
hive.metastore.warehouse.dir
外部表
External Table 需要指定数据读取的目录,而内部表创建的时候存放数据到默认路径,
内部表将数据和元数据全部删除,外部表只删除元数据,数据文件不会删除。
外部表加载数据和创建表同时完成,不会移动到数据仓库目录中。
模块
用户接口 CLI,JDBC/ODBC,WebUI
元数据存储(metastore) derby MySQL
驱动器(Driver)解释器、编译器、优化器、执行器
Hadoop HDFS存储 MapReduce计算
Partition 和Bucket
Partition
为减少不必要的暴力数据扫描,可以对表进行分区
为避免产生过多小文件,建议只对离散字段进行分区
Bucket
对于值较多的字段,可将其分成若干个Bucket
可结合Partition与Bucket使用
select语句
不支持having和exist in操作, 可转换为LEFT SEMI JOIN操作
Join(仅支持等值连接),不支持非等值的连接
Order by 和 Sort by
Order by
启动一个reduce task
数据全局有序
速度可能会非常慢
Strict模式下,必须与limit连用
Sort by
可以有多个reduce task
每个Reduce Task内部数据有序,但全局无序
通常与distribute by
Distribute by 与 Cluster by
distribute by
相当于MapReduce中的paritioner,默认基于hash实现
与sort by连用,可发挥很好的作用
cluster by
相当于distribute by与sort by(降序)连用, 字段相同时,可用cluster by简写
下一代Hive Stinger 计算引擎用Tez替换MapReduce
Tez对比MapReduce的优势
提供了多种算子(比如Map、Shuffle等)供用户使用;
将多个作业合并成一个作业,减少磁盘读写IO;
充分利用内存资源。
上一篇
下一篇
Zookeeper在HBase中的应用
elasticsearch中的DocValues
zab协议
HIVE数据模型
spark
5G简介