一、分布式SQL计算
以分布式的形式,执行SOL语句,进行数据统计分析。
二、Apache Hive定义
1、Apache Hive是一款分布式SQL计算的工具,其主要功能是将SQL语句 翻译成MapReduce程序运行
基于Hive为用户提供了分布式SQL计算的能力写的是SOL、执行的是MapReduce。
2、Apache Hive是做什么的?
将SQL语句翻译成MapReduce程序,从而提供用户分布式S计算的能力。
传统MapReduce开发:写MR代码->得到结果
使用Hive开发:写SQL->得到结果
底层都是MR在运行,但是使用层面上更加简单了
3、基于MapReduce构建分布式SQL执行引擎,主要需要有元数据管理、SQL解析器两个功能组件。
三、为什么使用Hive
1、使用Hadoop MapReduce直接处理数据所面临的问题
人员学习成本太高需要掌握java、Python等编程语言
MapReduce实现复杂查询逻辑开发难度太大
2、使用Hive处理数据的好处
操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)
底层执行MapReduce,可以完成分布式海量数据的SQL处理
四、Hive的核心架构
1、元数据存储,称之为Metastore服务
通常是存储在关系数据库如 mysql/derby中。Hive 中的元数据包括表的名字,表的列和分区
及其属性,表的属性(是否为外部表等),表的数据所在目录等。
- Hive提供了Metastore 服务进程提供元数据管理功能
2、SQL解析器(Driver驱动程序),包括语法解析器、计划编译器、优化器、执行器
完成 HOL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计
划存储在 HDFS 中,并在随后有执行引擎调用执行。
3、用户接口:提供用户和Hive交互的功能
这部分内容不是具体的服务进程,而是封装在Hive所依赖的Jar文件即Java代码中。