Hive基础概念

Hive很早以前就听说过,Hadoop是我研究的方向,但是对于Hive,Pig这些用的很少,这次为了京东金融的招聘才开始了解的

Hive是大数据平台下的数据仓库管理工具。它可以将简单的SQL语句,逐渐的转化为Hadoop Job,之后进行运行,方便的使用大数据平台进行大数据的计算,而不需要很多的专业知识。


百度百科的解释:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据表,并提供完整的SQL查询功能,可以将SQL语句转化为MapReduce人物进行运行。

优点:学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。


之后了解了和Hive相关的两种技术,一种是impala,一种是cassadra。

impala是根据谷歌的Dremel来进行开源开发的,使用列存储格式,这个不是太懂,但是这是用来取代Hive的新一代工具,原因很简单,Hive再怎么像SQL语句,都要转化为Hadoop Job进行运行,而这些Job的启动和运行都需要花费不少时间,对于快速的一些要求,Hive很难达到,所以Google开发了Dremel,用来“查询”海量数据,同时保证了速度,主要是通过实现了嵌套型的数据的列存储和是用了多层查询树


Cassadra,开源的分布式NoSQL数据库系统,分布式结构化存储方案,由Facebook进行开发,10年开始的,支持insert, update,delete, 事务 compare and set


HiveSQL: select, project, aggregate, union all , sub-queries

分为三个层次:Table,Partition,Bucket

整个的流程如下:

首先通过Compiler的Parser将String转化为Parse tree

之后Semantic Analyzer:将Parse Tree 转化为 Block-based internal query representation

之后 Logical Plan Generator: 将 Block-based internal query representation 转化为 Logical Plan

之后Optimizer 通过Combine,add partition operators, prune column的方式进行优化

之后Physical Plan Generator: 将 Logical Plan 转化为 Physical Plan

最后就是Executor执行Hadoop Job


 

猜你喜欢

转载自blog.csdn.net/wjcquking/article/details/43272827