Hive Metastore 理解

1、一些概念

Hive 元数据

元数据是描述数据的数据,例如数据表的大小是 100KB, 数据表是数据,表大小是数据的数据。

Hive 元数据包括 hive 库信息、表信息(表的属性、表的名称、表的列、分区及其属性)以及表数据所在的目录等。Hive 的元数据,默认是存储在 derby 中的,但是我们一般会修改其存储在关系型数据库比如 MYSQL 中(其可以在 hive 配置中修改),在关系型数据库中会有一个 hive 库,存放相应的表。

Meta store

MetaSore 是 Hive 元数据存储的地方。Hive 数据库、表、函数等的定义都存储在 Metastore 中。根据系统配置方式,统计信息和授权记录也可以存储在此处。Hive 或者其他执行引擎在运行时使用此数据来确定如何解析,授权以及有效执行用户查询。

MetaStore 分为两个部分:服务和后台数据的存储。

2、Hive 元数据存储的三种模式:

内嵌模式:将元数据保存在本地内嵌的 derby 数据库中,内嵌的 derby 数据库每次只能访问一个数据文件,也就意味着它不支持多会话连接
本地模式:将元数据保存在本地独立的数据库中(一般是 MySQL),这可以支持多会话连接
远程模式:把元数据保存在远程独立的 MySQL 数据库中,避免每个客户端都去安装 MySQL 数据库

三种配置方式区别:

        内嵌模式使用的是内嵌的 Derby 数据库来存储元数据,也不需要额外起 Metastore 服务。这个是默认的,配置简单,但是一次只能一个客户端连接,适用于用来实验,不适用于生产环境。
     本地元存储和远程元存储都采用外部数据库来存储元数据。本地元存储和远程元存储的区别是:本地元存储不需要单独起 metastore 服务,用的是跟 Hive 在同一个进程里的 metastore 服务。远程元存储需要单独起 metastore 服务,然后每个客户端都在配置文件里配置连接到该 metastore 服务。远程元存储的 metastore 服务和 Hive 运行在不同的进程。

3、Metastore 作用:

        Metastore 的作用是:客户端连接 metastore 服务,metastore 再去连接 MySQL 数据库来存取元数据。有了 metastore 服务,就可以有多个客户端同时连接,而且这些客户端不需要知道 MySQL 数据库的用户名和密码,只需要连接 metastore 服务即可
  Hive 默认元数据表是存储在 derby 中的,但是 derby 是单 session 的,所以一般会修改 hive-site.xml 中的元数据库配置为 MySQL。启用 MySQL 来管理元数据的配置。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值