初识Hive

一、Hive简介

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

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

  3. Hive的几个特点:

1. Hive最大的特点是通过类SQL来分析大数据,而避免了写MapReduce程序来分析数据,这样使得分析数据更
容易。
2. 数据是存储在HDFS上的,Hive本身并不提供数据的存储功能。
3. Hive是将数据映射成数据库和一张张的表,库和表的元数据信息一般存在关系型数据库上(比如MySQL)。
4. 数据存储方面:它能够存储很大的数据集,并且对数据完整性、格式要求并不严格。
5. 数据处理方面:因为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服务交互。
元数据项说明
DB_ID数据库的编号
DESC数据的描述
DB_LOCATION_URI数据库在HDFS上的目录
NAME数据库名
OWNER_NAME创建用户
OWNER_TYPE创建者的类型
Owner库、表的所属者
LastAccessTime最后修改时间
Table Type表类型(内部表、外部表)
CreateTime创建时间
Location存储位置
表的字段信息

Hive有很多种客户端。

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

三、Hive基本数据类型

Hive支持关系型数据中大多数基本数据类型,同时Hive中也有特有的三种复杂类型。
下面的表列出了Hive中的常用基本数据类型:

数据类型长度备注
Tinyint1字节的有符号整数-128~127
SmallInt2个字节的有符号整数-32768~32767
Int4个字节的有符号整数-2147483648 ~ 2147483647
BigInt8个字节的有符号整数
Boolean布尔类型,true或者falsetrue、false
Float单精度浮点数
Double双精度浮点数
String字符串
TimeStamp整数支持Unix timestamp,可以达到纳秒精度
Binary字节数组
Date日期0000-01-01 ~ 9999-12-31,常用String代替
- - -- - -- - -
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值