学习使用Apache Hive

HIVE的作用

将数据文件映射为一张表。
将SQL语法解析编译成为MapReduce的执行程序。

Hive架构

HIVE的组件

Hive组件

1.用户接口

包括CLI,JDBC/ODBC、WebGUI。
CLI(Command Line Interface)即命令行,是Hive的默认模式。
HIVE中的Thrift服务器允许外部客户端通过网络与Hive交互,类似于JDBC或ODBC协议。(JDBC/ODBC即Java数据库连接,是Hive的默认模式。
WebGUI是Hive的Web界面,提供给用户友好的操作界面。

2.元数据存储
通常是存储在关系数据库如MySQL、Postgresql等。

3.解释器
将SQL转换为MapReduce任务,最后提交给Hadoop执行。

4.编译器
将SQL编译成可以运行的MapReduce程序。

5.优化器
优化MR程序,转换为执行效率更高的执行计划。

6.执行器
提交MR程序给Hadoop执行,然后返回结果。HIVE支持Mapreduce、Tez和Spark三种执行引擎。

Hive数据模型

文件位置关系
HIVE中的数据模型分为三层:
1.元数据
元数据存储在关系数据库中,如MySQL、Postgresql等。
2.内部表
内部表是Hive默认的表类型,数据存储在HDFS中。
3.外部表
外部表是用户自定义的表类型,数据存储在HDFS中,但元数据存储在Hive的元数据存储中。
Hive与数据库的区别

Hive Metadata

Hive Metadata存储在关系数据库中,如MySQL、Postgresql等。
Hive Metadata存储了Hive 创建的database、表及其位置、类型、字段顺序等。

Hive Metastore

元数据服务,作用是管理Hive Metadata。对外暴露服务地址,让各种客户端通过连接Metastore服务,由Metastore再去连接数据库存取元数据。
好处:多个客户可同时连接;客户不知道数据库账号密码,保证元数据安全。

Metastore的配置方式

内嵌模式、本地模式、远程模式。
区分方式:
1.是否需要启动Metastore服务?
2.Metadata是存储在内置的数据库(如Derby)中还是远程数据库(如MySQL、Postgresql)中?

模式区分判断依据

未完待续….


学习使用Apache Hive
https://zzy-1128.github.io/2024/05/08/学习使用Apache-Hive/
Author
智勇爱学习
Posted on
May 8, 2024
Licensed under