hive简介
使用的版本是3.1.2
hive概念
hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库将HDFS中存储的结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。hive十分适合对数据仓库进行统计分析,其还支持UDF(User-Defined Function)、UDAF(User-Defined Aggregate Function)和UDTF(User-Defined Table-Generating Function),可以实现对map和reduce函数的定制,为海量数据集的操作提供了良好的扩展性
本质就是将HQL转化为MapReduce程序
hive处理的数据存储在HDFS
hive分析数据的底层实现是MapReduce
hive执行程序运行在Yarn上
优缺点
优点
操作接口采用类 SQL 语法,提供快速开发的能力
避免了去写 MapReduce,减少开发人员的学习成本
Hive 的执行延迟比较高,因此 Hive 常用于数据分析,对实时性要求不高的场合
Hive 优势在于处理大数据,对于处理小数据没有优势,因为 Hive 的执行延迟比较高
Hive 支持用户自定义函数,用户可以根据自己的需求来实现自己的函数
缺点
Hive的HQL 表达能力有限
迭代式算法无法表达
数据挖掘方面不擅长,由于 MapReduce 数据处理流程的限制,效率更高的算法却无法实现
Hive 的效率比较低
Hive 自动生成的 MapReduce 作业,通常情况下不够智能化
Hive 调优比较困难,粒度较粗
与数据库比较
数据规模
hive是建立在hadoop基础上利用MapReduce进行计算,支持大规模数据;数据库支持的规模较小
数据更新
hive是针对数据仓库设计的,不建议对数据进行改写,所有的数据都是在加载的时候确定好的;数据库是可以进行更新修改的
延迟执行
hive在查询时,由于没有索引,且数据规模较大,需要扫描全表,因此延迟较高;数据库延迟较低