分布式SQL计算平台 HIVE
文章目录
- 1. 概述
- 1.1 为什么使用Hive?
- 2. Hive架构
- 2.1 元数据存储
- 2.2 Driver驱动程序
- 2.3 用户接口
1. 概述
Hive是一款分布式SQL计算的工具,主要功能是将SQL语句翻译成MapReduce运行。基于Hive为用户提供了分布式SQL计算的能力,写的是SQL,执行的是MapReduce。因此Hive核心组件有两个:
- 元数据管理,帮助记录各类元数据
- SQL解析器,完成SQL到MapReduce程序的转换
1.1 为什么使用Hive?
- 首先使用MapReduce直接处理数据有两个问题面临,人员学习成本高,需要掌握java、Python等编程语言;且MapReduce实现复杂查询逻辑开发难度太大。
- 使用hive有两个好处,操作接口采用类SQL语法,提供快速开发的能力;底层执行MapReduce,可以完成分布式海量数据的SQL处理
2. Hive架构
Hive架构图如下:
2.1 元数据存储
Hive中的元数据信息通常是存储在关系数据库如mysql、derby中。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。Hive提供了Metastore服务进程提供元数据管理功能
2.2 Driver驱动程序
主要是完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有执行引擎调用执行。这些步骤不是具体的服务进程,而是封装在Hive所依赖的Jar包即Java代码中
2.3 用户接口
包括 CLI、JDBC/ODBC、WebGUI。其中,CLI(command line interface)为shell命令行;Hive中的Thrift服务器允许外部客户端通过网络与Hive进行交互,类似于JDBC或ODBC协议。WebGUI是通过浏览器访问Hive。Hive提供了 Hive Shell、 ThriftServer等服务进程向用户提供操作接口