CDP 的 Hive Metastore 简介

简介: Hive Metastore (HMS) 是一种服务,用于在后端 RDBMS(例如 MySQL 或 PostgreSQL)中存储与 Apache Hive 和其他服务相关的元数据。

Hive Metastore概述

Hive Metastore (HMS) 是一种服务,用于在后端 RDBMS(例如 MySQL 或 PostgreSQL)中存储与 Apache Hive 和其他服务相关的元数据。Impala、Spark、Hive 和其他服务共享元存储。与 HMS 的连接包括 HiveServer、Ranger 和代表 HDFS 的 NameNode。


Beeline、Hue、JDBC 和 Impala shell 客户端通过 thrift 或 JDBC 向 HiveServer 发出请求。HiveServer 实例向 HMS 读/写数据。默认情况下,冗余的 HMS 以主动/主动模式运行。物理数据驻留在后端 RDBMS 中,一个用于 HMS 的 RDBMS。所有的 HMS 实例使用相同的后端数据库。一个单独的 RDBMS 支持安全服务,例如 Ranger。在任何给定时间,所有连接都路由到单一的 RDBMS 服务。HMS 通过 thrift 与 NameNode 对话,并充当 HDFS 的客户端。

image.png

HMS 直接连接到 Ranger 和 NameNode (HDFS),HiveServer 也是如此,但为简单起见,该图中并未显示。后端的一个或多个 HMS 实例可以与其他服务(例如 Ranger)通信。


HMS表的存储

当您运行 CREATE TABLE 语句或将表迁移到 Cloudera Data Platform 时,您需要了解 HMS 如何存储 Hive 表。语句的成功或失败、结果表类型和表位置取决于许多因素。


HMS 表的转换

HMS 包含有关您创建的表的以下 Hive 元数据:

  • 表的定义
  • 列名
  • 数据类型
  • 中央的Schema存储库中的注释

当您在 CREATE TABLE 语句中使用 EXTERNAL 关键字时,HMS 会将表存储为外部表。当您省略 EXTERNAL 关键字并创建托管表或摄取托管表时,HMS 可能会将表转换为外部表,或者创建表可能会失败,这具体取决于表的属性。影响表转换的一个重要表属性是 ACID 或非 ACID 表类型:

非ACID

表属性不包含任何设置为 true 的 ACID 相关属性。例如,该表不包含这样的属性 transactional=true 或 insert_only=true

ACID

表属性确实包含一个或多个设置为 true 的 ACID 属性。

完全的ACID

表属性包含 transactional=true 但包含insert_only=true

仅插入的ACID

表属性包含 insert_only=true。

以下矩阵显示了表类型以及是否支持位置属性。

ACID 托管表 位置属性 注释 行动
ACID 是的 是的 迁移到CDP,例如从HDPCDH集群 表存储为外部表
ACID 是的

表位置为空(null) 存储在外部仓库子目录中的表*metastore.warehouse.external.dir


HMS 检测用于与 HMS 进行交互的客户端类型,例如 Hive 或 Spark,并将客户端的功能与表要求进行比较。HMS 根据比较结果执行以下操作:


表要求

客户端符合要求

托管表

ACID 表类型

行动

客户端可以写入任何类型的 ACID 表

是的

是的

创建表失败

客户端可以写入完整的 ACID 表

是的

insert_only=true

创建表失败

客户端可以写入仅插入的 ACID 表

是的

insert_only=true

创建表失败


例如,如果 Spark 客户端不具备所需的功能,则会出现以下类型的错误消息:

Spark has no access to table `mytable`. Clients can access this table only if
they have the following capabilities: CONNECTORREAD,HIVEFULLACIDREAD, HIVEFULLACIDWRITE,
HIVEMANAGESTATS, HIVECACHEINVALIDATE, . . .




点击链接参与阿里云CDP限时免费测试啦~

https://survey.aliyun.com/apps/zhiliao/owtTaIQU3


钉钉扫描下方二维码加入阿里云 Cloudera 企业数据云交流群一起参与讨论吧!

lADPJxDjvPGb9xjNA97NAu4_750_990.jpg

相关文章
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
51 3
|
3月前
|
SQL 存储 关系型数据库
|
SQL 分布式计算 Java
浅析 hive udaf 的正确编写方式- 论姿势的重要性-系列四-如何直接访问metastore service(附源码)
浅析 hive udaf 的正确编写方式- 论姿势的重要性-系列四-如何直接访问metastore service(附源码)
|
6月前
|
SQL HIVE
Hive【Hive学习大纲】【数据仓库+简介+工作原理】【自学阶段整理的xmind思维导图分享】【点击可放大看高清】
【4月更文挑战第6天】Hive【Hive学习大纲】【数据仓库+简介+工作原理】【自学阶段整理的xmind思维导图分享】【点击可放大看高清】
98 0
|
SQL 运维 大数据
如何获取大数据平台 CDH 中 hive metastore db 的用户名和密码?
如何获取大数据平台 CDH 中 hive metastore db 的用户名和密码?
如何获取大数据平台 CDH 中 hive metastore db 的用户名和密码?
|
SQL 分布式计算 Hadoop
44 Hive简介
44 Hive简介
56 0
|
SQL 资源调度 大数据
大数据平台 CDP 中如何配置 hive 作业的 YARN 队列以确保SLA?
大数据平台 CDP 中如何配置 hive 作业的 YARN 队列以确保SLA?
|
SQL 存储 大数据
关于数据仓库的Hive的Hive架构的MetaStore元数据服务
随着大数据技术的不断发展,数据仓库成为了企业中不可或缺的一部分。而Hive作为一种开源的数据仓库系统,因其易于使用和高效处理等特点,成为了许多企业的首选。然而,对于普通用户来说,直接使用Hive的命令行工具进行操作并不方便。因此,开发者社区中涌现出了大量的Hive GUI工具,其中最为流行的就是Web GUI工具。
309 2
|
SQL 分布式计算 监控
《CDP企业数据云平台从入门到实践》——Hive 迁移到 CDP(1)
《CDP企业数据云平台从入门到实践》——Hive 迁移到 CDP(1)
151 0
|
SQL 监控 分布式数据库
《CDP企业数据云平台从入门到实践》——Hive 迁移到 CDP(2)
《CDP企业数据云平台从入门到实践》——Hive 迁移到 CDP(2)
109 0