版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuanyi0501/article/details/83062852
Hive
- 由Facebook开源用于解决海量结构化日志的数据统计
- hive是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张表,并提供类似sql查询功能
- 构架在Hadoop上的数据仓库:
- 使用hql作为查询接口
- 使用HDFS存储
- 使用mapreduce计算
本质是将hql转化成mapreduce程序
- 灵活性和扩展性比较好
- 适合离线数据处理
架构图:
面试必问
HQL
| -----------------------Engine——>hive
MapReduce
RMDBS
- 表的概念;
create table bf_log(
ip string,
user string,
date string,
…
) - 表的元数据——》Metastore
- 包括:表名、表所属的数据库、表的拥有者、列、字段、表的类型、表数据所在的目录等等。
Driver驱动器——>将hql转换成mapreduce
- 解析器——》SQL Parser
- 优化器——》Query Optimizer
- 经过优化器形成物理的计划——》Physical Plan
- 最后按照物理计划执行——》Execution
优点
- 操作接口采用类sql语法,提供快速开发的能力
- 避免了写mapreduce,减少开发人员的学习成本
- 统一的元数据管理,可以和impala/spark等共享数据
- 易扩展,可以扩展集群规模,支持自定义函数
使用场景
- 数据的离线处理:比如:日志分析、海量结构化数据离线分析
- hive执行延迟比较高,适用于数据分析对实时性要求不高的场合
- 优势在于处理大数据