0%

hive简介

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在查询时,由于没有索引,且数据规模较大,需要扫描全表,因此延迟较高;数据库延迟较低

欢迎关注我的其它发布渠道