Hive 是什么?

本文最后更新于:2 年前

Hive 是 Apache下的项目,架构在Hadoop上面的数据仓库。

用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive十分适合对数据仓库进行统计分析。


使用Hadoop的过程中,会遇到以下的问题:

  • 调试复杂。
  • 在开发的过程中,需要对 Hadoop 的底层原理、API 有一定的了解才能顺畅地开发 MR 程序。
  • Hadoop 支持的 Java,其他的语言虽然也支持但不是主流。对于大量的SQL用户而言,这个问题如何解决?

Hive 提供的 HiveQL 查询语言(HQL)的 SQL 方言,来查询存储在 Hadoop 集群的数据的。

用户只需要关注查询本身,设计的目的是为了精通 sql 但是对 Java 编程相对较弱的分析师能够对存在于 HDFS 上的大规模数据快速的执行查询。

Hive 最适合用于数据仓库程序,使用该应用程序是进行静态数据分析,不需要快速响应结果,而且数据本身不会频繁变化。

Hive 不支持行级别的数据插入(只有追加)、更新和删除。

Hive是基于 Hadoop 的数据仓库,用于处理结构化的数据集,数据结构存在于 MySQL,数据存在 HDFS。

Hive 可以将一个类似于 sql 的查询语句(HQL)翻译成 MR 程序,将 job 提交给 HDFS 进行查询时,hive 把 HDFS 上的一个目录映射成一张 Hive 表,在查询的时候就是把 job 放在 HDFS 上处理该文件。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!