为 Hive 配置外部元存储
默认情况下,Hive 会在主节点的文件系统上的 MySQL 数据库中记录元存储信息。元存储包含表以及在其上构建表的基础数据的描述,包括分区名称、数据类型等。集群终止后,所有集群节点都会关闭,包括主节点。当发生此情况时,本地数据会丢失,因为节点文件系统使用的是短暂存储。如果您需要保留元存储,则必须创建一个存在于集群外部的外部元存储。
对于外部元存储,您有两个选项:
-
Amazon Glue 数据目录(仅限 Amazon EMR 发行版 5.8.0 或更高版本)。
有关更多信息,请参阅 将 Amazon Glue 数据目录用作 Hive 元存储。。
-
Amazon RDS 或 Amazon Aurora。
有关更多信息,请参阅 使用外部 MySQL 数据库或 Amazon Aurora。
注意
如果您使用 Hive 3 并遇到 Hive 元数据仓的连接太多的问题,请将参数 datanucleus.connectionPool.maxPoolSize
配置为一个较小的值或增加数据库服务器可以处理的连接数。连接数量增加是因 Hive 计算 JDBC 连接的最大数量的方式所致。要计算可确保最佳性能的值,请参阅 Hive 配置属性