Hive de 功能架构

来源:互联网 发布:股票大作手回忆录知乎 编辑:程序博客网 时间:2024/05/29 02:38

什么是Hive

hive简介

1.hive是由FaceBook开源的用于解决海量结构化日志的数据统计
2.hive是基于Hadoop的一个数据仓库工具,,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
3 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析

hive的定义

1.Hive是建立在 Hadoop 上的**数据仓库**基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。2.Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。3.这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。

hive的实质

在hive的实际作用中
1.hive处理的数据存储在hdfs上
2.hive分析数据的底层实现是MapReduce
3.hive执行程序是运行在Yarn上
4.hive的功能实现是基于hadoop上的,在性能的调优上通过hadoop来实现
5.hive使用hql语句作为数据查询的接口
从某种意义上说,hive其实就是hadoop的客户端,本质上是,将hql语句转换成mapreduce程序

hive的使用场景

1.数据的离线处理,如,日志分析,海量结构化日志离线分析
2.hive执行延迟性较高,适用于数据分析,对实时性要求不高
3.hive 适合处理大型数据,对小数据没有优势

hive的优点

1.操作接口使用类sql语法,提供了快速开发的能力,简单,易上手
2.避免去写mapreduce,减少开发人员的学习成本
3.统一元数据管理,可以与impala/spark共享数据
4.支持UDF(自定义函数), 自定义存储格式,在使用上,更灵活
5. 使用hdfs+mapreduce可以扩展集群规模,扩展性更强。

Hive的结构体系

hive体系结构包括五个小部分

1、hive用户接口,cli,jdbc。写入sql语句
2. sql parser解析器,解析写入的sql语句,将sql字符串转换成抽象的语法数AST
3.physical plan 编译器,将sql语句转为物理计划(mapreduce程序)
4. Query Optimizer优化器,对解析的物理计划进行优化
5. Execution 执行器,执行物理计划,在yarn上运行

Hive体系结构图

这里写图片描述
如图:
hive的运行过程
hive使用jdbc/clike客户端等作为查询入口获取查询语句
hql解析器解析hql的查询语句发送给编译器,将hql语句转变为物理计划(就是mapreduce程序),然后优化器对该计划进行优化,再使用执行器,执行(物理计划)mapreduce程序,在这个过程中,mapreduce的执行时在yarn上,处理的数据是存放在hdfs上,hive元数据放在定义的mate store上(默认存放hive自带的derby数据库)。。。。

**严格来说**hive体系分为三部分
第一步部分:hive用户接口
第三部分:driver驱动器,包括解析器,编译器,优化器,执行器
第三部分:hadoop,hdfs存储数据,mapreduce计算数据,yarn分配资源,运行程序

0 0
原创粉丝点击