總覽
建立 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 metastore 密碼。
gcloud dataproc clusters create cluster-name --properties="hive:javax.jdo.option.ConnectionPassword=HIVE_METASTORE_PASSWORD"
注意:
- 如要在 Cloud Key Management Service 中建立金鑰,請參閱「建立金鑰」。
- Hive metastore 密碼只會儲存在叢集主節點上,不會儲存在 worker 節點上。
如要進一步瞭解如何保護 Dataproc 叢集安全,請參閱「Dataproc 安全性最佳做法」一文。
不支援的情境
無論您使用預設或使用者提供的 Hive metastore 密碼,Dataproc 都不支援下列 Hive metastore 情境:
您在以叢集模式執行的 Spark 驅動程式中使用內嵌 metastore 用戶端,因此 worker 節點需要 Hive 密碼。由於連線並非透過 Dataproc 主節點上執行的
HiveMetaStore程序建立,因此這個情況可能會導致 metastore 資料庫的連線問題。停用 Hive metastore 和
hive-server2,改用自己的 MySQL 資料庫。 在此情境中,spark.hadoop.javax.jdo.option.ConnectionURL=jdbc:mysql://CLUSTER_NAME-m/metastore屬性不會有任何效果。