Hive 原理实践

栏目: 服务器 · 发布时间: 6年前

Hive基本架构

Hive 原理实践

Driver组件 :核心组件,整个Hive的核心,该组件包括Complier(编译器)、Optimizer(优化器)和Executor(执行器),它们的作用是对Hive SQL语句进行解析、编译优化,生成执行计划,然后调用底层的MapReduce计算框架。

Metastore组件 :元数据服务组件,这个组件存储Hive的元数据。支持的关系型数据库有Derby和MySQL。

CLI :命令行接口

Thrift Server :提供JDBC和ODBC接入能力,用户进行可扩展且跨语言的服务开发。Hive集成了该服务,能让不同的编程语言调用Hive的接口。

Hive Web Interface(HWI) :Hive客户端提供了一种通过网页方式访问Hive所提供的服务。这个接口对应Hive的HWI组件。

Hive通过CLI、JDBC/ODBC 或者HWI接收相关的Hive SQL查询,并通过Driver组件进行编译,分析优化,最后变成可执行的MapReduce。

HIVE  SQL

hive表:分内部表和外部表

内部表:会把hdfs目录文件移动到hive对应的目录。删除表对应的表接口和文件也会一起删除。

外部表:不会移动关联的hdfs文件,删除表只会删除表结构。

使用场景:如果数据的所有处理都在hive中进行,那么更倾向于选择内部表,但如果Hive和其它 工具 针对相同的数据集做处理,那么外部表更合适。

分区和分桶

分区可以让数据的部分查询变更更快,表或者分区可以进一步划分为桶,桶通常在原始数据中加入一些额外的结构,这些结构可以用于高效查询。

分桶通常有两个原因:一是高效查询,二是高效的进行抽样。

Hive SQL执行原理:

大致归三类:select语句、group by 语句、join语句。

流程:输入分片->Map阶段->Combiner(可选)->Shuffle阶段(分区、 排序 、分隔、复制、合并等过程)-> Reduce阶段-> 输出文件。

其他SQL on Hadoop技术 :Impala、Drill、HAWQ、Presto、Dremel、Spark SQL。

Hive优化

主要挑战数据倾斜:group by 引起的倾斜优化、Count distinct 优化、大表join小表(mapjoin)优化、大表join大表优化。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Machine Learning

Machine Learning

Kevin Murphy / The MIT Press / 2012-9-18 / USD 90.00

Today's Web-enabled deluge of electronic data calls for automated methods of data analysis. Machine learning provides these, developing methods that can automatically detect patterns in data and then ......一起来看看 《Machine Learning》 这本书的介绍吧!

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具