创建和保护 Hive Metastore 集群

概览

创建 Dataproc 集群时,Apache Hive 应用及其组件(包括 Hive Metastore)会安装在集群上,并在集群主节点上的 hive-site.xml 文件中设置默认密码。

建议您指定自己的 Hive Metastore 密码,以实现以下目标:

  • 作为一种最佳实践安全措施,旨在确保您控制对 本地 Hive Metastore

  • 指定一个已知密码,用于控制对外部 Hive Metastore 的访问权限,该 Metastore 与在不同集群之间共享的外部数据库搭配使用

设置 Hive Metastore 密码

运行以下 Google Cloud CLI Dataproc clusters create 命令以创建 Dataproc 集群并指定 Hive 元存储库密码。

gcloud dataproc clusters create cluster-name
 --properties="hive:javax.jdo.option.ConnectionPassword=HIVE_METASTORE_PASSWORD"

注意:

  • 如需在 Cloud Key Management Service 中创建密钥,请参阅创建密钥
  • Hive Metastore 密码仅存储在集群主节点上,而不会存储在工作器节点上。

如需详细了解如何保护 Dataproc 集群,请参阅 Dataproc 安全性最佳实践

不受支持的场景

无论您使用的是默认的 Hive Metastore 密码还是用户提供的 Hive Metastore 密码,Dataproc 都不支持以下 Hive Metastore 场景:

  • 您将在集群模式下运行的 Spark 驱动程序中使用嵌入式 Metastore 客户端, 以便工作器节点需要使用 Hive 密码。这种情况可能会导致 Metastore 数据库出现连接问题 不是通过 HiveMetaStore Dataproc 主节点。

  • 您需要停用 Hive Metastore 和 hive-server2,以便使用自己的 MySQL 数据库。 在这种情况下,spark.hadoop.javax.jdo.option.ConnectionURL=jdbc:mysql://CLUSTER_NAME-m/metastore 属性没有任何影响。