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接口。

发布了124 篇原创文章 · 获赞 0 · 访问量 7867

猜你喜欢

转载自blog.csdn.net/weixin_43680708/article/details/86584504