创建和保护 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 驱动程序中使用嵌入式元存储客户端,因此工作器节点需要 Hive 密码。由于连接不是通过 Dataproc 主节点上运行的 HiveMetaStore 进程建立的,因此这种情况可能会导致与 Metastore 数据库的连接问题。

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