Hive2.x学习笔记(1)-Hive介绍
什么是Hive
用于解决海量结构化日志的数据统计,基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。本质是将HQL转化为MapReduce程序。
Hive的优点
- 操作接口使用类SQL语法,提供快速开发的能力
- 避免了写MapReduce,减少开发人员的学习成本
- Hive执行延迟比较高,常用于数据分析,对实时性要求不高的场合
- Hive优势在于处理大数据,对于处理小数据没有优势
- Hive支持用户自定义函数,用户可以根据自己的需要来实现自己的函数
Hive的缺点
- Hive的HQL表达能力有限
- 迭代式算法无法表达
- 数据挖掘方面不擅长
- Hive效率比较底
- Hive自动生成的MapReduce作业,通常情况下不够智能化
- Hive调优比较困难,粒度较粗
Hive的构架原理
- Meta Store
元数据,用于存储结构,包括:表名、所属的数据库(默认default)、拥有者、列/分区字段、表类型、表数据所在目录等 - Client
包手用户接口和驱动
- 用户接口
- 驱动
- SQL Parser解释器,将SQL字符串抽象为语法树
- Physical Plan编译器,生成逻辑执行计划
- Query Optimizer优化器,对逻辑执行执行计划进行优化
- Execution执行器,把逻辑执行计划转换成可以运行的物理计划(MapRduce或者Spark)
- Hadoop
使用hdfs存储数据,利用MapReduce进行计算