← 返回首页
Hive的基本概念
发表时间:2023-06-29 16:21:23
Hive的基本概念

Hive是由Facebook开源的,构建于Hadoop之上的数据仓库工具,将结构化的数据映射成一张表格,提供了类SQL的查询语句,底层可以转换为MapReduce去执行。Hive的数据存储在HDFS之上,大部分的查询计算由MapReduce完成,Hive将元数据存储在数据库中。

1.hive简介

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

2.hive架构

  1. Client:用户可以通过CLI(command-line interface,命令行窗口)、jdbc访问Hive。
  2. Metastore(元数据):元数据包括表名、表所属的数据库、表的拥有者、列/分区字段、表的类型、表的数据所在目录等。元数据信息默认存储在自带的derby数据库中,推荐使用MySQL存储元数据信息。
  3. 使用HDFS进行数据存储,使用MapReduce进行计算。
  4. Driver(驱动器):(1)解析器(SQL Parser):将SQL字符串转换成抽象语法树AST,这一步一般都用第三方工具库完成,比如antlr;对AST进行语法分析,比如表是否存在、字段是否存在、SQL语义是否有误。(2)编译器(Physical Plan):将AST编译生成逻辑执行计划。(3)优化器(Query Optimizer):对逻辑执行计划进行优化。(4)执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。对于Hive来说,就是MapReduce或者Spark。

Hive通过给用户提供的一系列交互接口,接收到用户的指令(SQL),使用自己的Driver,结合元数据(MetaStore),将这些指令翻译成MapReduce,提交到Hadoop中执行。最后,将执行返回的结果输出到用户交互接口。

3.Hive的数据存储

4.Hive的优缺点

hive的优点:

hive的缺点:

5.Hive VS Mysql

                        HIVE                MySQL
---------------------------------------------------------------------
数据存储位置          HDFS                       本地磁盘
数据格式        用户定义               系统决定
数据更新        不支持(不支持修改和删除)       支持(支持增删改查)
索引              有,但较弱,一般很少用     有,经常使用的
执行              MapReduce           Executor
执行延迟        高               低
可扩展性        高               低
数据规模        大               小

6.Hive和Hbase的区别

在Hadoop为首的大数据技术生态当中,Hive和Hbase各居其位,各自发挥着自身的作用,把它们各自的定位搞清楚,对于后续的学习很重要。

7.OLTP VS OLAP

其实从字面上来对比,OLTP 和 OLAP 只有一个单词不一样,OLTP侧重于事务,OLAP侧重于分析。所以数据库和数据仓库的特性是不一样的,不过我们平时在使用的时候,可以把Hive作为一个数据库来操作,但是你要知道他们两个是不一样的。数据仓库的概念是比数据库要大的多。