什么是Hive

  Hive:由Facebook开源用于解决海量结构化日志的数据统计。
  Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为 一 张表,并提供类SQL查询功能。
  本质是:将HQL转化成 MapReduce程序

  1. 优点
    操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。
    避免了去写MapReduce,减少开发人员的学习成本。
    Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合。
    Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高 。
    Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
  2. 缺点
      1.Hive的HQL表达能力有限,迭代式算法无法表达
    数据挖掘方面不擅长,由于MapReduce数据处理流程的限制,效率更高的算法却无法实现。
      2.Hive的效率比较低

Hive自动生成的MapReduce作业,通常情况下不够智能化
Hive调优比较困难,粒度较粗

Hive与Hadoop的关系

Hive利用HDFS存储数据,利用MapReduce查询分析数据image.png

Hive和数据库比较:

由于 Hive 采用了类似SQL 的查询语言 HQL(Hive Query Language),因此很容易将 Hive 理解为数据库。其实从结构上来看,Hive 和数据库除了拥有类似的查询语言,再无类似之处。本文将从多个方面来阐述 Hive 和数据库的差异。数据库可以用在 Online 的应用中,但是Hive 是为数据仓库而设计的,清楚这一点,有助于从应用角度理解 Hive 的特性。
将SQL语句解析成对应的MapReduce程序

Hive运行机制:image.png