为什么要学习hive数据仓,它的优缺点是什么?

hive是什么,它能做什么,为什么要学习hive?

hive数据仓是由美国的Facebook公司开源的,主要是为了解决海量结构日志的数据统计而诞生的。hive数据仓主要是基于Hadoop的一个开源数据仓库工具,也是Hadoop的生态圈,它不仅可以将结构化的数据文件映射为一张表,还有为我们提供SQL查询语句,容易上手,只要你懂一些MySQL数据库一些基本的SQL语句,你便轻松玩转hive数据仓。

hive数据仓有什么优点

hive的最大优势其实是处理大数据,也就是大量的数据才显得更加有优势,对于小数据不太友好,因为hive的执行延迟比较高;hive合适用于数据分析以及平时对实时性要求不高的场景使用;还有就是hive数据仓优点在它能够给入门者低门槛、简单易学,操作接口采用类sql语法的,提高快速开发效率,开发者可以根据自己需要来实现自己的函数。

hive数据仓有什么缺点

hive的数据仓缺点非常明显,就是效率比较低,比如一些场景自动生成MapReduce时候,通常情况下是不够智能化的;其次hive的调优比较困难、粒度较粗、在数据挖掘时不擅长以及迭代式算法的表达都是不太好的。

hive的架构原理

hive其实它的本质就是将HOL转化为MapReduce程序的,底层实现就是MapReduce的,它处理的数据存储在HDFS中,执行程序在Yran上。

原理:从上图可以看到hive的原理,hive是通过给用户提供的一系列交互接口,然后通过接收到用户的指令如sql,再使用自己的Driver结合元数据Meta store,将这些的指令翻译成MapReduce的,也是我们上文提到的hive底层其实是实现MapReduce程序,最终提交到Hadoop集群中执行,再返回结果给用户交互接口。

hive执行详细步骤

第一步:首先用户操作接口(Client),各中操作如hive shell、通过浏览器访问hive以及Java访问hive等等。

第二步:就是用户操作接口后到元数据(Meta staore)比如表名、表的所属数据库、字段、表类型等这些成为元数据。

第三步:这一步就是执行计算了,数据存储到HDFS,使用的是MapReduce进行计算。

第四步:驱动器Driver,这一步首先。解析器将sql字符串转换成抽象语法树AST,然后到编译器将AST编译生成逻辑执行计划,再到优化器对逻辑执行计划进行一个优化,最终由执行器把这些逻辑执行计划转换成我们可以运行在物理机计划的这样一个过程。

 

 

猜你喜欢

转载自blog.csdn.net/realize_dream/article/details/105625111
今日推荐