0-岗前知识培训2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.2 Hive工作原理
•Hive的整体工作流程如下: •(1)执行查询。Hive接口,如命令行或Web UI发送查询驱动程序(任何数据库驱动程序,如 JDBC,ODBC等)来执行。 •(2)获取计划。在驱动程序帮助下查询编译器,分析查询检查语法和查询计划或查询的要求。 •(3)获取元数据。编译器发送元数据请求到Metastore(任何数据库)。 •(4)发送元数据。MetaStore将元数据作为对编译器的响应发送出去。 •(5)发送计划。编译器检查要求,并重新发送计划给驱动程序。到此为止,查询解析和编译完成。 •(6)执行计划。驱动程序发送执行计划到执行引擎。在内部,执行作业的过程是一个MapReduce 工作。执行引擎发送作业给主节点JobTracker(或ResourceManager),主节点分配作业任务 给从节点TaskTracker(或NodeManager),从节点也就是数据节点。在数据节点上查询执行 MapReduce工作。 •(6.1)元数据操作。与此同时,在执行时,执行引擎可以通过Metastore执行元数据操作。 •(7)获得结果。执行引擎接收来自数据节点的结果。 •(8)发送结果给驱动程序。执行引擎发送这些结果值给驱动程序。 •(9)驱动程序再将结果发送至Hive接口。最后由驱动程序将结果发送给Hive接口。
2.3 Hive接口和运行模式
(1)Hive用户接口 Hive 对外提供了三种服务模式,即CLI、WUI和Client。对这些服务的用法进行 介绍。 • Hive 命令行模式 这种方式进行Hive速度快且比较灵活,它允许方便地剪切和粘贴代码,执行 HQL文件,且不容易出错。 Hive 命令行模式启动有两种方式。执行这条命令的前提是要配置 Hive 的环境 变量。
(2)元数据存储
Hive将元数据存储在数据库中,如MySql、Derby。Hive中的元数据 包括表的名称,表的列,表的分区,表的属性(是否为外部表等) 以及表的数据所在目录等。
5
Hive体系架构
(3)驱动模块:解释器、编译器、优化器。 分别完成HiveQL查询语句从词法分析、语法分析、编译、优化以及
《数据仓库技术应用》
岗前知识培训
Hive运行原理
产学致用 · 知行合一
目录
2.1 HiveQL 介绍 2.2 Hive工作原理 2.3 Hive接口和运行模式 2.4 Hive与传统数据库的比较
2.1 HiveQL介绍
HiveQL是一种类似SQL的语言,它与大部分的SQL语法兼容,但是并 不完全支持SQL标准,如HiveQL早期版本不支持更新操作,也不支 持索引和事务,它的子查询和join操作也很局限,这是因其底层依 赖于Hadoop分布式平台这一特性决定的,但其有些特点是SQL所无 法企及的。例如多表查询、支持create table as select和集成 MapReduce脚本等。
• Hive Web 模式 Hive Web模式是基于web界面的,主要用于查看当前HiveServer2服务链接的会 话、服务日志、配置参数等信息。
• Hive 的远程服务 远程服务(默认端口号 10000)启动方式命令如下,“nohup...&” 是 Linux 命 令,表示命令在后台运行。
2.4 Hive与传统数据库的比较
查询计划的生成。生成的查询计划存储在HDFS中,并在随后有 MapReduce调用执行。 (4)数据存储。
Hive的数据存储在HDFS中,大部分的查询、计算由MapReduce完成 (包含*的查询,比如select * from tbl不会生成MapReduce任务)
6
2.2 Hive的工作原理如下图所示。
Hive 将通过CLI接入,JDBC/ODBC接入,或者HWI接入的相关查询, 通过Driver(Complier、Optimizer和Executor),进行编译,分析优 化,最后变成可执行的MapReduce。MapReduce开发人员可以把自己 写的Mapper和Reducer作为插件支持Hive做更复杂的数据分析。
查询语言 数据存储位置 数据格式 数据更新 索引 执行 执行延迟 可扩展性 数据规模
Hive HQL HDFS 用户定义 不支持 无 MapReduce 高 高 大
传统数据库 SQL Raw Device或者Local FS 系统决定 支持 有 Executor 低 低 小
小结
本项目的主要任务是Hive的相关知识介绍,包括Hive、HBase、HDFS以及 Hive工作原理与体系架构。通过本项目,应该了解Hive与HDFS和HBase的 关系,以及Hive的应用场景,掌握Hive的工作原理及体系架构,掌握Hive 架构中相关组件的使用方式,为后续Hive的安装部署与运行以及Hive的深 入应用打下基础。
3
Hive体系架构
Hive的体系结构可以分为四个部分,如下图所示:(1)用户接口。 (2)元数据存储。(3)解释器、编译器、优化器。(4)数据存储。
4
Hive系统架构
(1)用户接口。 Hive的用户接口主要有三个:命令行接口(CLI)、Web界面(WUI
)和远程服务方式(Client)。其中最常用的是CLI,以命令行的形 式输入SQL语句进行数据操作,CLI启动时会同时启动一个Hive副本。 WUI是通过浏览器方式访问Hive。Client是Hive的客户端,用户连接 至Hive Server,通过JDBC等方式进行访问。在启动 Client模式的时 候,需要指出Hive Server所在节点,并且在该节点启动Hive Server 。
Hive的设计目的是为了那些精通SQL技能的分析师能够对存放在HDFS上的大 规模数据集上进行查询。Hive在很多方面和传统数据库类似,比如说它支持 SQL接口;但是由于其它底层设计的原因,对HDFS和Mapreduce有很强的依 赖,这也就意味这Hive的体系结构和传统数据库有很大的区别。这些区别又间 接的影响到Hive所支持的一些特性。下表从多个方面列出Hive和传统数据库的 差异。
相关文档
最新文档