Hive基本概述以及执行原理

文章目录

  • 前言
  • Hive工作原理:
    • 语法分析和词方分析。
    • 语义分析。
    • 逻辑计划生成。
    • 逻辑计划优化。
    • 物理计划生成。
    • 物理计划执行。
    • 将查询结果返回。
  • 使用的组件
    • 元存储(MetaStore)
    • 驱动(Driver)
    • 查询编译器(Query Compiler)
    • 执行引擎(Execution Engine)
    • Hive服务器(Hive Service)


前言

Hive是基于Hadoop的一个数据仓库工具。它可以将结构哈的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运算。将数据存储在HDFS上。

Hive工作原理:

语法分析和词方分析。

使用antlr将SQL语句解析成抽象语法树。

语义分析。

从MetaStore中获取元数据信息,验证SQL语句中的表名、列名、数据类型。

逻辑计划生成。

生成逻辑计划得到算子树。

逻辑计划优化。

对算子树进行优化,包括列剪枝、分区剪枝、谓词下推等。

物理计划生成。

将逻辑计划生成出包含由MapReduce任务组成的DAG的物理计划。

物理计划执行。

将DAG发送到Hadoop集群中进行执行。

将查询结果返回。

架构图如下:
Hive基本概述以及执行原理_第1张图片

使用的组件

元存储(MetaStore)

该组件存储了Hive中标的描述信息,其中包含表、分区、模型、列即其类型、表数据映射关系等。通常在实际应用中会考虑将MetaStore中的数据存储到RDBMS(关系型数据库),如:MySQL。

驱动(Driver)

控制HiveSQL生命周期的组件,当HiveQL查询提交到Hive时,该驱动管理者会话句柄以及任何会话统计。

查询编译器(Query Compiler)

该组件将HiveSQL编译成有向无环图形式的MapReduce任务。

执行引擎(Execution Engine)

该组件按照依赖顺序执行由编译产生的任务。

Hive服务器(Hive Service)

目前该组件提供了Thrift、JDBC远程语句接口等。

你可能感兴趣的:(#,HIVE,hive,hadoop,大数据)