【大数据入门 | Hive】Hive入门学习

1. 什么是Hive

1.1 Hive简介

Hive 是由 Facebook 开源,基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文
件映射为一张表,并提供类 SQL 查询功能。

那为什么会有 Hive 呢?它是为了解决什么问题而诞生的呢?
下面通过一个案例,来快速了解一下 Hive。

例如:需求,统计单词出现个数。
(1)在 Hadoop 中我们用 MapReduce 程序实现的,当时需要写 Mapper、Reducer
和 Driver 三个类,并实现对应逻辑,相对繁琐。

test 表
id 列
atguigu
atguigu
ss
ss
jiao
banzhang
xue
hadoop

如果通过 Hive SQL 实现,一行就搞定了,简单方便,容易理解。

select count(*) from test group by id;

1.2 Hive的本质


Hive 是一个 Hadoop 客户端,用于将 HQL(Hive SQL)转化成 MapReduce 程序。
(1)Hive 中每张表的数据存储在 HDFS
(2)Hive 分析数据底层的实现是 MapReduce(也可配置为 Spark 或者 Tez)
(3)执行程序运行在 Yarn 上

2. Hive架构原理

架构原理

用户接口(Client)

CLI(command-line interface)、JDBC/ODBC。
说明:JDBC 和 ODBC 的区别。
(1)JDBC 的移植性比 ODBC 好;(通常情况下,安装完 ODBC 驱动程序之后,还需要
经过确定的配置才能够应用。而不相同的配置在不相同数据库服务器之间不能够通用。所
以,安装一次就需要再配置一次。JDBC 只需要选取适当的 JDBC 数据库驱动程序,就不需
要额外的配置。在安装过程中,JDBC 数据库驱动程序会自己完成有关的配置。)
(2)两者使用的语言不同,JDBC 在 Java 编程时使用,ODBC 一般在 C/C++编程时使用

元数据(Metastore)

元数据包括:数据库(默认是 default)、表名、表的拥有者、列/分区字段、表的类型
(是否是外部表)、表的数据所在目录等。
默认存储在自带的 derby 数据库中,由于 derby 数据库只支持单客户端访问,生产环
境中为了多人开发,推荐使用 MySQL 存储 Metastore。

驱动器(Driver)

(1)解析器(SQLParser):将 SQL 字符串转换成抽象语法树(AST)
(2)语义分析(Semantic Analyzer):将 AST 进一步划分为 QeuryBlock
(3)逻辑计划生成器(Logical Plan Gen):将语法树生成逻辑计划

(4)逻辑优化器(Logical Optimizer):对逻辑计划进行优化
(5)物理计划生成器(Physical Plan Gen):根据优化后的逻辑计划生成物理计划
(6)物理优化器(Physical Optimizer):对物理计划进行优化
(7)执行器(Execution):执行该计划,得到查询结果并返回给客户端

Hadoop

使用 HDFS 进行存储,可以选择 MapReduce/Tez/Spark 进行计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值