

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为 Hive 配置外部元存储
<a name="emr-metastore-external-hive"></a>

默认情况下，Hive 会在主节点的文件系统上的 MySQL 数据库中记录元存储信息。元存储包含表以及在其上构建表的基础数据的描述，包括分区名称、数据类型等。集群终止后，所有集群节点都会关闭，包括主节点。当发生此情况时，本地数据会丢失，因为节点文件系统使用的是短暂存储。如果您需要保留元存储，则必须创建一个存在于集群外部的*外部元存储*。

对于外部元存储，您有两个选项：
+ Amazon Glue 数据目录（仅限亚马逊 EMR 版本 5.8.0 或更高版本）。

  有关更多信息，请参阅 [使用 Amazon Glue 数据目录作为 Hive 的元数据库](emr-hive-metastore-glue.md)。
+ Amazon RDS 或 Amazon Aurora。

  有关更多信息，请参阅 [使用外部 MySQL 数据库或 Amazon Aurora](emr-hive-metastore-external.md)。

**注意**  
如果您使用 Hive 3 并遇到 Hive 元数据仓的连接太多的问题，请将参数 `datanucleus.connectionPool.maxPoolSize` 配置为一个较小的值或增加数据库服务器可以处理的连接数。连接数量增加是因 Hive 计算 JDBC 连接的最大数量的方式所致。要计算可确保最佳性能的值，请参阅 [Hive 配置属性](https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties#ConfigurationProperties-datanucleus.connectionPool.maxPoolSize.1)。