欢迎回家
我们一直在改变

Hive的基本概念

这篇文章是基于hive-1.0.0版本介绍的,这个版本的Hive是运行在MapReduce上的,新的版本可以运行在Tez上,会有一些不同。

Hive是对数据仓库进行管理和分析数据的工具。但是大家不要被“数据仓库”这个词所吓倒,数据仓库是很复杂的东西,但是如果你会 或者MSSQL,就会发现Hive是那么的简单,简单到甚至不用学就可以使用Hive做出业务所需要的东西。

但是Hive和MYSQL毕竟不同,执行原理、优化方法,底层架构都完全不相同。 大数据离线分析使用Hive已经成为主流,

一、Hive简介

Facebook为了解决海量日志数据的分析而开发了Hive,后来开源给了 Apache 软件基金会。

官网定义:

The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL.

Hive是一种用类SQL语句来协助读写、管理那些存储在分布式存储系统上大数据集的数据仓库软件。

Hive的几个特点

  • Hive最大的特点是通过类SQL来分析大数据,而避免了写MapReduce程序来分析数据,这样使得分析数据更容易。
  • 数据是存储在HDFS上的,Hive本身并不提供数据的存储功能
  • Hive是将数据映射成 数据库 和一张张的表,库和表的元数据信息一般存在关系型数据库上(比如MySQL)。
  • 数据存储方面:它能够存储很大的数据集,并且对数据完整性、格式要求并不严格。
  • 数据处理方面:因为Hive语句最终会生成MapReduce任务去计算,所以不适用于实时计算的场景,它适用于离线分析。

二、Hive架构

Hive的核心

Hive的核心是驱动引擎,驱动引擎由四部分组成:

  • 解释器:解释器的作用是将HiveSQL语句转换为语法树(AST)。
  • 编译器:编译器是将语法树编译为逻辑执行计划。
  • 优化器:优化器是对逻辑执行计划进行优化。
  • 执行器:执行器是调用底层的运行框架执行逻辑执行计划。

Hive的底层存储

Hive的数据是存储在HDFS上的。Hive中的库和表可以看作是对HDFS上数据做的一个映射。所以Hive必须是运行在一个Hadoop集群上的。

Hive语句的执行过程

Hive中的执行器,是将最终要执行的MapReduce程序放到YARN上以一系列Job的方式去执行。

Hive的元数据存储

Hive的元数据是一般是存储在MySQL这种关系型数据库上的,Hive和MySQL之间通过MetaStore服务交互。

元数据项说明
Owner库、表的所属者
LastAccessTime最后修改时间
Table Type表类型(内部表、外部表)
CreateTime创建时间
Location存储位置

Hive客户端

Hive有很多种客户端。

  • cli命令行客户端:采用交互窗口,用hive命令行和Hive进行通信。
  • HiveServer2客户端:用Thrift协议进行通信,Thrift是不同语言之间的转换器,是连接不同语言程序间的协议,通过JDBC或者ODBC去访问Hive。
  • HWI客户端:hive自带的一个客户端,但是比较粗糙,一般不用。
  • HUE客户端:通过Web页面来和Hive进行交互,使用的比较多。

原文链接:https://www.codercto.com/a/5110.html

赞(0)
未经允许不得转载:91coding » Hive的基本概念
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

立即登录   注册

91CODING 小白轻松上手,大牛稳健进步

关于我们免责声明