写点什么

Hive 基本架构

  • 2022-10-31
    北京
  • 本文字数:808 字

    阅读完需:约 3 分钟

Hive基本架构

Hive 是构建在分布式计算框架之上的 SQL 引擎,它重用了 Hadoop 中的分布式存储系统 HDFS/HBase 和分布式计算框架 MapReduce/Tez/Spark 等。Hive 是 Hadoop 生态系统中的重要部分,目前是应用最广泛的 SQL On Hadoop 解决方案。


Hive 对外提供了三种访问方式,包括 Web UI、CLI(Client Line Interface)和 Thrift 协议(支持 JDBC/ODBC),而在 Hive 后端,主要由三个服务组件构成。

  • Driver(驱动器)。与关系型数据库的查询引擎类似,Driver 实现了 SQL 解析,生成逻辑计划、物理计划、查询优化与执行等,它的输入是 SQL 语句,输出为一系列分布式执行程序(可以为 MapReduce、Tez 或 Spark 等)。

  • Metastore。Hive Metastore 是管理和存储元信息的服务,它保存了数据库的基本信息以及数据表的定义等,为了能够可靠地保存这些元信息,Hive Metastore 一般将它们持久化到关系型数据库中,默认采用了嵌入式数据库 Derby,用户可根据需要启用其他数据库,比如 MySQL。

  • Hadoop。Hive 依赖于 Hadoop,包括分布式文件系统 HDFS、分布式资源管理系统 YARN 以及分布式计算引擎 MapReduce, Hive 中的数据表对应的数据存放在 HDFS 上,计算资源由 YARN 分配,而计算任务则来自 MapReduce 引擎。


根据 Metastore 的运行方式不同,可将 Hive 分成三种部署模式:

  • 嵌入式模式:Metastore 和数据库(Derby)两个进程嵌入到 Driver 中,当 Driver 启动时会同时运行这两个进程,一般用于测试。

  • 本地模式:Driver 和 Metastore 运行在本地,而数据库(比如 MySQL)启动在一个共享节点上。

  • 远程模式:Metastore 运行在单独一个节点上,被其他所有服务共享。使用 Beeline, JDBC/ODBC, CLI 和 Thrift 等方式访问 Hive 时,则采用的是该模式。这是一种常用于生产环境下的部署模式。


Hive 是 Hadoop 生态系统中最早的 SQL 引擎,它的 Metastore 服务已经被越来越多的 SQL 引擎所支持,已经成为大数据系统的元信息标准存储仓库。Spark SQL、Impala 和 Presto 等引擎均可直接读取并处理 Hive Metastore 中的数据表,真正实现“一份数据多种引擎”的计算模式。

发布于: 刚刚阅读数: 3
用户头像

InfoQ签约作者 2018-11-30 加入

热爱生活,收藏美好,专注技术,持续成长

评论

发布
暂无评论
Hive基本架构_hive_穿过生命散发芬芳_InfoQ写作社区