Hive的体系结构和工作流程学习笔记

备注:此博客为转载,方便自己总结学习进步,原作者地址请点击此处

HIVE是什么?

Hive是hadoop上处理结构化数据的数据仓库基础工具,用来处理存储在hadoop上的海量数据,使用hive可以使查询和分析变得更简单。

Hive起初是有facebook开发,后来贡献给apache基金会的,apache对它做了进一步的开发并开源。

Hive不合适做哪些事情?

1.hive不是一个关系型数据库

2.Hive不适合做为在线事务处理(OLTP)的系统

3.Hive不适合做实时查询和行级更新的操作

Hive特点:

1.在HDFS上处理数据,但是元数据通常保存在关系型数据库中

2.Hive被设计用来处理离线数据分析(OLAP)

3.Hive提供了类似sql类型的语言HiveQL(HQL)用来进行查询操作。

4.Hive具有易懂,快速,可伸缩,可扩展的特性

Hive的体系结构

以下组件图描绘了hive的体系结构:

\
在这里插入图片描述

这个组件图包含了各种不同的组件,下面对每个组件进行描述:

1.User Interface(用户界面):hive能够创建用户与HDFS之间的交互,hive支持的用户界面包括Hive web UI,hive命令行和hive HD Insight.

2.Meta Store(元数据存储):hive选择单独的数据库服务器用来储存表,数据库,列,列的类型还有和HDFS的映射的关系的schema和元数据.

3.HiveQL Process Engine(HiveQL流程引擎):hiveQL类似于在元数据,schema上执行的sql,它替代了传统的mapreduce程序。我们可以创建一个查询语句而不是用java编写mapreduce去处理mapreduce任务.

4.Execution Engine(执行引擎):执行引擎是hiveQL和mapreduce的结合部分,它处理我们的查询语句并将其解析为mapreduce去执行.

5.HDFS or HBASE:Hadoop分布式文件系统或HBASE.

HIVE的工作流程:

下图描绘了hive和hadoop之间的工作流程:

\
在这里插入图片描述

以下为执行说明:

1.Execute Query:hive界面如命令行或Web UI将查询发送到Driver(任何数据库驱动程序如JDBC、ODBC,等等)来执行。

2.Get Plan:Driver根据查询编译器解析query语句,验证query语句的语法,查询计划或者查询条件。

3.Get Metadata:编译器将元数据请求发送给Metastore(任何数据库)。

4.Send Metadata:Metastore将元数据作为响应发送给编译器。

5.Send Plan:编译器检查要求和重新发送Driver的计划。到这里,查询的解析和编译完成。

6.Execute Plan:Driver将执行计划发送到执行引擎。

7.Execute Job:hadoop内部执行的是mapreduce工作过程,任务执行引擎发送一个任务到资源管理节点(resourcemanager),资源管理器分配该任务到任务节点,由任务节点上开始执行mapreduce任务。

7.1Metadata Ops:在执行引擎发送任务的同时,对hive的元数据进行相应操作。

8.Fetch Result:执行引擎接收数据节点(data node)的结果。

9.Send Results:执行引擎发送这些合成值到Driver。

10.Send Results:Driver将结果发送到hive接口。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值