hive基本概念原理与底层架构

hive是一个数据仓库基础工具在hadoop中用来处理结构化的数据,它架构在hadoop之上,总归为大数据,并使得查询和分析方便,提供简单的sql查询功能,可以讲sql语句转换成mapreduce任务进行。

hadoop是一个开源框架,在分布式环境中存储和处理大型数据,他包括两个模块,一个是mapreduce,另一个是hdfs.

mapreduce: 他是一个并行编程模型在大型集群普通硬件可用于处理大型结构化,半结构化和非结构化数据。

hdfs:   hadoop分布式文件系统是hadoop框架的一部分,用于存储和处理数据集,它提供了一个容错文件系统在普通硬件上运行。

sqoop:他是用来在hdfs和关系型数据库之间来回导入和导出数据。

hive的相关组件:

   用户接口/界面:hive是一个数据仓库基础工具软件,可以创建用户和hdfs之间的互动,用户界面,hive支持是hive的web UI ,hive的命令行。

元存储: hive选择各自的数据库服务器,用以存储表,数据库,列模式或元数据表,他们的数据类型和hdfs映射。

hivesql处理引擎:hivesql类似于sql的查询上metastore模式信息。

执行引擎:hql处理引擎和mapreduce的结合部分是由hive执行引擎。

hdfs:Hadoop的分布式文件系统适用于将数据存储在文件系统。

第一种

hadoop和hive的交互方式:

1.执行查询:hive接口,命令行或者是we b ui 发送查询驱动程序来执行。

2.获得执行计划:在驱动程序帮助下查询编译器,分析查询检查语法和查询计划或者查询要求

3.获取元数据信息:编译器会发送元数据请求到任何数据库(m y s q l)

4.发送元数据信息:mysql会发送元数据信息,以编译器的响应。

5.发送执行计划:编译器会检查要求,并重新发送计划给驱动程序,到此为止,查询解析和编译完成。

6.执行计划:驱动程序发送执行计划到执行引擎。

7.执行job:在内部,执行作业的过程其实一个map re du ce工作,执行引擎会把作业发送给jobtracker,开始查询执行map re du ce工作,是在数据节点上进行的。与此同时,在执行时,执行引擎可以通过metastore来执行元数据操作。

8.执行引擎接收来自数据节点的结果,执行引擎发送这些结果给驱动程序,驱动程序讲结果发送给hive 接口。

hive 原理 第二种

1.用户提交查询等任务给driver,编译器获得该用户的任务计划,根据用户任务去元数据库中获取相应的需要的hive的元数据信息。

2.编译器得到元数据信息,对任务进行编译,先将h q l转换为抽象语法树,然后将抽象语法树转化成查询块,将查询块转换成逻辑的查询计划,重写逻辑查询计划,将逻辑查询计划转化为无聊的计划就是map re du ce,最后选择最佳的策略。

5.将最终计划提交给driver.

6.driver会将计划转交给执行引擎去执行,获取元数据信息,提交给job t re c ke r执行该任务,任务会直接读取h d f s中文件进行响应的操作。

7.获取执行的结果。并取得返回结果。

你可能感兴趣的:(hive基本概念原理与底层架构)