aws emr-6.13.0 中的hive metadata 默认位置 在mysql中没有找到

1

本机配置文件 /etc/hive/conf/hive-site.xml 我连接如上中的mysql 之后,并未找到对应的hive database~ 在此处输入图片描述

本地使用hive命令是可以正常读取到元数据的,所以这些元数据是存在哪了呀? 在此处输入图片描述

已提问 7 个月前284 查看次数
1 回答
0

您好,

感谢您的提问。

我知道您想在 AWS EMR 6.13.0 中定位hive 元数据。从提供的屏幕截图来看,您似乎正在使用外部 RDS MySQL 数据库作为 Hive 元数据仓。

当您通过以下配置使用外部 MySQL 数据库作为 Hive 元数据仓时,可以覆盖 Hive 中元数据仓的默认配置值来指定外部数据库的位置,无论是在 Amazon RDS MySQL 实例还是 Amazon Aurora PostgreSQLinStance [1] 上。

[
    {
      "Classification": "hive-site",
      "Properties": {
        "javax.jdo.option.ConnectionURL": "jdbc:mysql://hostname:3306/hive?createDatabaseIfNotExist=true",
        "javax.jdo.option.ConnectionDriverName": "org.mariadb.jdbc.Driver",
        "javax.jdo.option.ConnectionUserName": "username",
        "javax.jdo.option.ConnectionPassword": "password"
      }
    }
  ]

元存储位置 :

存储元数据的位置是为每个 HiveServer/HiveMetastore 实例建立的。每个集群都在其主节点上运行这些进程,因此,元数据仓的位置是根据每个集群确定的。当您使用外部元数据仓(例如 RDS)时,必须更新这些属性并重新启动集群主节点中的元数据仓服务。配置在 hive-site.xml/hive-default.xml 包含的属性中设置。具体来说:

javax.jdo.option.ConnectionURL

javax.jdo.option.ConnectionDriverName

javax.jdo.option.ConnectionUserName

javax.jdo.option.ConnectionPassword

元数据仓位于 RDS 中。您可以通过指定元存储位置来启动共享此元存储的所有其他 Hive 集群。

Hive 元存储中有许多表,每个表都有特定的用途。Hive 使用此元数据存储库来存储其元数据(数据库名称、表名、列、数据类型等)例如,TBLS 表包含与 Hive 表相关的数据,例如表名、表所有者、创建时间、数据库 ID 等。

此外,您可以运行以下 MySQL 命令来验证您是否可以访问 Amazon RDS 数据库实例上的 Hive 表。[2]

Connect to the Amazon RDS instance and run MySQL commands similar to the following.

 - mysql -h your-rds-hostname.region.rds.amazonaws.com -P 3306 -u usernameForRDS -p

 - use hive;

 - show tables;

 - select * from TBLS;

从上面的输出中,您将能够看到您在 EMR 主节点上的 hive 中创建的表。

我希望以上信息对您有所帮助。感谢您提出您的疑问,我很高兴为您提供进一步的帮助。

希望您有美好的一天。

参考文献:

[1] https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hive-metastore-external.html

[2] https://stackoverflow.com/questions/63928724/what-do-the-various-tables-in-hive-metastore-contain

AWS
Advay_M
已回答 7 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则