排解 Dataproc Metastore 連線問題

本頁提供指引,說明如何診斷及解決 Dataproc 叢集或 Dataproc 無伺服器工作負載連線至代管 Dataproc Metastore 服務時,常見的連線問題。

常見症狀和錯誤訊息

如果 Dataproc 遇到 Dataproc Metastore 連線問題,您可能會看到下列錯誤:

  • Unable to connect to Hive Metastore
  • Connection refused
  • Host unreachable
  • javax.jdo.JDOException 或類似的資料庫連線錯誤
  • 嘗試列出資料庫或資料表,或提交與 Metastore 互動的 Spark 或 Hive 工作時,發生逾時錯誤。

常見原因和疑難排解步驟

本節將說明發生 Dataproc Metastore 連線問題的常見原因,並針對每種情況提供具體的疑難排解步驟。

1. 網路設定問題

網路設定錯誤是導致 Dataproc 工作負載與 Dataproc Metastore 之間連線失敗的最常見原因。

  • 虛擬私有雲網路對等互連或私有服務存取:

    • Dataproc Metastore 執行個體通常是透過虛擬私有雲網路對等互連連線 (具體來說是 Private Service Access),使用私人 IP 位址範圍存取。
    • 確認對等互連狀態:確認 Dataproc 工作負載的虛擬私有雲網路與 Dataproc Metastore 的服務生產端網路之間的虛擬私有雲對等互連連線是否處於啟用狀態且運作正常。您可以在Google Cloud 控制台的「虛擬私有雲網路」>「虛擬私有雲網路對等互連」下方查看這項資訊。
    • IP 範圍分配:確認虛擬私有雲網路中已為 Private Service Access 分配足夠的 IP 範圍。
  • 防火牆規則:

    • 確認 Dataproc 工作負載虛擬私有雲網路的防火牆規則,允許 Dataproc Metastore 使用的通訊埠 (預設為 9083) 傳送輸出流量。
    • 確認服務生產者網路端沒有過於嚴格的輸入規則,導致 Dataproc 工作負載的流量遭到封鎖。
  • DNS 解析:

    • 確認中繼存放區端點主機名稱 (例如your-metastore-endpoint.us-central1.dataproc.cloud.google.com) 從 Dataproc 叢集或 Dataproc Serverless 環境正確解析為私人 IP 位址。
    • Cloud DNS 私人區域或 DNS 轉送的問題可能會導致解析失敗。

疑難排解步驟 (網路):

  1. 檢查 Dataproc Metastore 連線資訊:
    • 在 Google Cloud 控制台中,前往「Dataproc Metastore」,然後選取執行個體。
    • 記下端點 URI 和連線的網路
  2. 驗證虛擬私有雲對等互連或私有服務存取權:
    • 前往「虛擬私有雲網路」>「虛擬私有雲網路對等互連」。確認與 servicenetworking-googleapis-com 的對等互連連線為 ACTIVE
  3. 使用連線測試:使用 Google Cloud的連線測試,診斷從 Dataproc 工作負載子網路中的 Compute Engine VM 到 Dataproc Metastore 端點 IP 位址和連接埠的網路路徑。
  4. 檢查防火牆記錄:如果懷疑是防火牆規則所致,請分析Cloud 防火牆記錄中遭拒絕的連線。

2. IAM 權限

Dataproc 工作負載使用的服務帳戶必須具備適當的 IAM 角色,才能存取 Dataproc Metastore。

  • 必要角色:服務帳戶必須在 Dataproc Metastore 執行個體或專案中,具備「Dataproc Metastore 使用者」角色 (roles/datametastore.user)。
  • 服務代理程式權限:如果 Dataproc 隱含存取 Metastore,請確認 Dataproc 服務代理程式是否具備足夠的權限。

疑難排解步驟 (IAM):

  1. 找出服務帳戶:找出 Dataproc 叢集或 Dataproc Serverless 批次作業使用的服務帳戶。
  2. 驗證 IAM 角色:在 Google Cloud 控制台中,依序前往「IAM & Admin」(IAM 與管理) >「IAM」(身分與存取權管理)。 檢查指派給 Dataproc Metastore 專案或執行個體服務帳戶的角色。如果缺少,請授予 roles/datametastore.user
  3. 如要進一步瞭解服務帳戶設定,請參閱:

3. 端點設定有誤

Dataproc 工作負載必須設定正確的 Dataproc Metastore 端點 URI。

疑難排解步驟 (端點):

  1. 驗證端點 URI:請仔細檢查 hive.metastore.uris Spark 屬性,或用於指定工作負載提交中 Dataproc Metastore 端點的任何其他設定。確認這與 Dataproc Metastore 執行個體詳細資料中的「端點 URI」相符。

4. 其他注意事項

  • Metastore 狀態:在 Google Cloud 控制台中,確認 Dataproc Metastore 執行個體處於 HEALTHY 狀態。如果狀態不正常,請先解決 Metastore 的內部問題。
  • 版本相容性:雖然很少發生,但請確認 Dataproc 映像檔版本和 Dataproc Metastore 版本之間沒有已知的相容性問題。
  • SQL Proxy 與代管服務:如果您使用 cloud-sql-proxy.sh 初始化動作,將 Cloud SQL 做為 Metastore,請參閱 Cloud SQL Proxy 初始化動作 README 中的特定疑難排解步驟。

後續步驟