概览
创建 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
属性没有任何影响。