Hive:Hive基础知识 01

本文详细介绍了Hive的基础知识,包括Hive与HDFS的数据映射,元数据的metastore功能和存储方式,以及metastore在多框架共享中的作用。此外,还讲解了Hive的MapReduce过程,Hive客户端与服务端的使用,以及HQL的DDL、DML和DQL语法。
摘要由CSDN通过智能技术生成

Hive基础知识

一、Hive与HDFS的数据映射

1.Hive对象与HDFS关系
数据库:每个数据库在HDFS中对应一个目录
目录的名字:库名.db
表:每张表在数据库中对应的目录下建立一个与表同名的目录
表的数据:映射的是HDFS上的文件

2.元数据映射
所有Hive中数据库、表与HDFS的映射关系存储在元数据中,Hive服务端会读取元数据找到这张表对应的HDFS数据

3.元数据映射过程

1.先检索数据库的信息
2.再检索表的信息
3.通过表的SD_ID来获取这张表映射的HDFS的地址
4.将整个表的目录中的 所有数据进行读取并返回

二、Hive转换与MapReduce过程

1.基本映射关系

MapReduce SQL
Input from
Map select,from
Shuffle group by,order by
Reduce having,limit
Output 将SQL结果保存

2.执行解析

select region,count(*) as numb from tb_house where region != '浦东' group by region order by numb;

3.查看执行计划

explain select region,count(*) as numb from tb_house where region != '浦东' group by region order by numb;

三、元数据:metastore的功能和存储方式

1.metastore功能
Hive中的元数据记录了Hive中所有对象信息,包括数据库信息,表的信息,字段的信息,重点记录了Hive表和HDFS文件的映射关系
每次创建表关联文件,Hive都会自动创建表的元数据
每次查询表的数据,Hive都会从元数据中获取表的对应的HDFS信息

2.metastore的存储方式
方式:
嵌入式数据库:Local/Embedded Metastore Database(Derby)
存储在derby
本地数据库
存储在MySQL中,可以直接访问
远程Metastore服务
存储在MySQL中,但是通过一个进程来访问
位置:
默认位置:Hive自带的Derby数据库
缺点:不能共享,不能启动多个实例,一般不用
自定义位置:自定义将元数据存储到其他数据库中
类型:MySQl、Oracle、PostGrepSQL,工作中一般存储到MySQL中

3.metastore的功能?
存储Hive中所有对象的信息:数据库、表、列
存储Hive中表与HDFS的映射关系

四、元数据:metastore共享问题

1.工作中的应用场景
工作中不使用Hive来实现数据仓库中的分布式计算,
使用替代品:SparkSQL、Impala、Presto,因为他们计算更快,性能更好,语法都兼容Hive的语法

2.如果用SparkSQL来处理Hive数据仓库中的表,SparkSQL怎么知道Hive中有哪些表?
让SparkSQL读取Hive元数据

3.如何SparkSQL获取了Hive的元数据,SparkSQL怎么知道这个元数据的含义是什么?
解析元数据的含义

4.如果多个框架都需要访问Hive的元数据,每个框架都封装解析代码,就非常冗余,如何解决这个问题?
通过metastore服务,实现元数据共享

五、元数据:metastore服务

1.metastore功能
实现元数据共享服务,专门负责管理Hive的元数据,接收所有需要访问元数据的请求

2.metastore的配置

#编辑hive-site.xml文件,添加以下内容
<property>
    <name>hive.metastore.uris</name>
    <value>thrift://node3:9083</value>
</property>

3.metastore的启动

#1.先启动metastore服务
hive --service metastore
#2.再启动Hive的服务端和客户端
hive
#3.查看metastore端口开放情况
netstat -atunlp | grep 9083

六、Hive客户端与服务端

1.Hive Shell
功能:
Hive特殊的客户端,启动时会自动包含启动服务端

命令:

hive

特点:
服务端客户端一体,交互性不太友好

2.Beeline与hiveserver2
功能:
Beeline:

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值