Dataproc 選用 Ranger 元件

當您使用選用元件功能建立 Dataproc 叢集時,可以安裝 Ranger 等其他元件。本頁面說明 Ranger 元件。

Apache Ranger 元件是一個開放原始碼架構,用於管理 Hadoop 生態系統的權限和稽核功能。Ranger 管理員伺服器和 Web UI 位於叢集的第一個主要節點的 6080 通訊埠上。

另請參閱:

安裝元件

請在建立 Dataproc 叢集時安裝元件。您可以將元件新增至使用 Dataproc 1.3 以上版本建立的叢集。Ranger 元件需要安裝 Solr 元件,如以下所示。

請參閱支援的 Dataproc 版本,瞭解每個 Dataproc 映像檔版本中包含的元件版本。

安裝步驟:

  1. 設定 Ranger 管理員密碼:

    1. Cloud KMS CryptoKey 加密編譯金鑰加密者/解密者角色授予叢集服務帳戶。根據預設,叢集服務帳戶會設為 Compute Engine 預設服務帳戶,其格式如下:
      project-number-compute@developer.gserviceaccount.com
      
      您可以在建立叢集時指定其他叢集服務帳戶,如下所示。
      1. 範例:將 Cloud KMS CryptoKey 加密者/解密者角色授予 Compute Engine 預設服務帳戶:
        gcloud projects add-iam-policy-binding project-id \
            --member=serviceAccount:project-number-compute@developer.gserviceaccount.com \
            --role=roles/cloudkms.cryptoKeyDecrypter
        
    2. 使用 金鑰管理服務 (KMS) 金鑰加密 Ranger 管理員使用者的密碼。如果是 2.2 以下版本的映像檔版本叢集,密碼必須至少包含 8 個字元,且至少包含一個英文字母和一個數字。對於 2.2 以上版本的叢集,密碼至少必須包含 8 個字元,且至少包含一個大寫字母、一個小寫字母和一個數字。
      1. 示例
        1. 建立金鑰環:
          gcloud kms keyrings create my-keyring --location=global
          
        2. 建立金鑰:
          gcloud kms keys create my-key \
              --location=global \
              --keyring=my-keyring \
              --purpose=encryption
          
        3. 加密 Ranger 管理員使用者密碼:
          echo 'my-ranger-admin-password' | \
            gcloud kms encrypt \
              --location=global \
              --keyring=my-keyring \
              --key=my-key \
              --plaintext-file=- \
              --ciphertext-file=admin-password.encrypted
          
    3. 將加密密碼上傳至專案中的 Cloud Storage 值區
      1. 範例
        gcloud storage cp admin-password.encrypted gs://my-bucket
        
  2. 建立叢集:

    1. 安裝 Ranger 元件時,也必須安裝 Solr 元件,如下所示。
      1. Ranger 元件會使用 Solr 元件儲存及查詢稽核記錄,預設會使用 HDFS 做為儲存空間。刪除叢集時,系統會刪除 HDFS 資料。如要設定 Solr 元件,以便在 Cloud Storage 中儲存資料 (包括 Ranger 稽核記錄),請在建立叢集時使用 dataproc:solr.gcs.path=gs://<bucket> 叢集屬性。叢集刪除後,Cloud Storage 資料會保留下來。
    2. 設定 dataproc:ranger.kms.key.uridataproc:ranger.admin.password.uri 叢集屬性,將 KMS 金鑰和密碼 Cloud Storage URI 傳遞至叢集建立指令。
    3. 您可以選擇透過設定 dataproc:ranger.db.admin.password.uri 叢集屬性,透過加密的 Cloud Storage 檔案 URI 傳入 Ranger 資料庫的管理員使用者密碼。
    4. 根據預設,Ranger 元件會使用在叢集第一個主要節點上執行的 MySql 資料庫執行個體。在 MySQL 例項中,將變數設為 ON 即可啟用 log_bin_trust_function_creators 標記。設定此標記可控管是否信任儲存的函式建立者。叢集建立和 Ranger 設定成功後,您可以將 log_bin_trust_function_creators 重設為 OFF
    5. 如要在叢集刪除後保留 Ranger 資料庫,請使用 Cloud SQL 執行個體做為外部 MySql 資料庫。

      1. dataproc:ranger.cloud-sql.instance.connection.name 叢集屬性 設為 Cloud SQL 執行個體。
      2. dataproc:ranger.cloud-sql.root.password.uri 叢集屬性 設為 Cloud SQL 執行個體的 KMS 金鑰加密根密碼的 Cloud Storage URI。
      3. 設定 dataproc:ranger.cloud-sql.use-private-ip 叢集屬性,指出是否透過私人 IP 連線至 Cloud SQL 執行個體。

      Ranger 元件會使用 Cloud SQL Proxy 連線至 Cloud SQL 執行個體。如要使用 Proxy:

      1. 建立叢集時,請設定 sqlservice.admin API 範圍 (請參閱「使用 OAuth 2.0 授權要求」)。如果使用 gcloud dataproc cluster create 指令,請新增 --scopes=default,sql-admin 參數。
      2. 在專案中啟用 SQL Admin API
      3. 確認叢集服務帳戶是否具備 Cloud SQL 編輯者角色。

      gcloud 指令

      如要建立包含 Ranger 元件的 Dataproc 叢集,請使用 gcloud dataproc clusters create cluster-name 指令搭配 --optional-components 標記。

      gcloud dataproc clusters create cluster-name \
          --optional-components=SOLR,RANGER \
          --region=region \
          --enable-component-gateway \
          --properties="dataproc:ranger.kms.key.uri=projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key,dataproc:ranger.admin.password.uri=gs://my-bucket/admin-password.encrypted" \
          ... other flags
      

      REST API

      在 Dataproc API clusters.create 要求中,在 SoftwareConfig.Component 欄位中指定 Ranger 和 Solr 元件。您還必須在 SoftwareConfig.Component.properties 欄位中設定下列叢集屬性

      1. dataproc:ranger.kms.key.uri:「projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key
      2. dataproc:ranger.admin.password.uri : "gs://my-bucket/admin-password.encrypted"

      控制台

      1. 啟用元件和元件閘道。
        • 在 Google Cloud 控制台中,開啟 Dataproc 的「Create a cluster」頁面。已選取「設定叢集」面板。
        • 在「元件」部分:
          • 在「選用元件」下方,選取要安裝在叢集上的 Ranger、Solr 和其他選用元件。
          • 在「元件閘道」下方,選取「啟用元件閘道」(請參閱「查看及存取元件閘道網址」)。

按一下「網路介面」分頁標籤。在「Component gateway」下方,按一下「Ranger」Ranger,開啟 Ranger 網路介面。使用 Ranger 管理員的使用者名稱 (例如「admin」) 和密碼登入。

Ranger 管理員記錄

Ranger 管理員記錄會以 ranger-admin-root 記錄的形式顯示在 Logging 中。