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