Dataproc 可选 Ranger 组件

使用可选组件功能创建 Dataproc 集群时,您可以安装其他组件,例如 Ranger。本页面介绍了 Ranger 组件。

Apache Ranger 组件是一个开源框架,用于管理 Hadoop 生态系统的权限和审核。Ranger 管理员服务器和网页界面可用于集群第一个主节点上的端口 6080 上。

另请参阅

安装组件

在创建 Dataproc 集群时安装组件。 组件可添加到使用 Dataproc 版本 1.3 及更高版本创建的 集群中。Ranger 组件需要安装 Solr 组件,如下所示:

如需查看每个 Dataproc 映像版本中包含的组件版本,请参阅支持的 Dataproc 版本

安装步骤

  1. 设置您的 Ranger 管理员密码:

    1. Cloud KMS CryptoKey Encrypter/Decrypter 角色授予集群服务账号:默认情况下,集群服务账号会设置为 Compute Engine 默认服务账号,该账号的格式如下:
      project-number-compute@developer.gserviceaccount.com
      
      您可以在创建集群时指定其他集群服务账号,见下文。
      1. 示例:将 Cloud KMS CryptoKey Encrypter/Decrypter 角色授予 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 管理员用户的密码。您的密码必须至少包含 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. 示例
        gsutil cp admin-password.encrypted gs://my-bucket
        
  2. 创建您的集群:

    1. 安装 Ranger 组件时,还必须安装 Solr 组件,如下所示。
      1. Ranger 组件依赖 Solr 组件来存储和查询其审核日志,该日志默认使用 HDFS 作为存储。在删除集群时,HDFS 数据也会被删除。要在 Cloud Storage 上配置 Solr 组件以存储数据(包括 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 代理连接到 Cloud SQL 实例。如需使用代理:

      1. 在创建集群时设置 sqlservice.admin API 范围(请参阅使用 OAuth 2.0 为请求授权)。如果使用的是 gcloud dataproc cluster create 命令,请添加 --scopes=default,sql-admin 参数。
      2. 在您的项目中启用 SQL Admin API
      3. 确保集群服务账号具有 Cloud SQL Editor 角色。

      gcloud 命令

      如需创建包含 Ranger 组件的 Dataproc 集群,请使用带有 --optional-components 标志的 gcloud dataproc clusters create cluster-name 命令。

      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

      SoftwareConfig.Component 字段中指定 Ranger 和 Solr 组件,作为 Dataproc API clusters.create 请求的一部分。您还必须在 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 创建集群页面。选中“设置集群”面板。
        • 在组件部分中执行以下操作:
          • 在“可选组件”下,选择“Ranger”、“Solr”以及其他一些要在集群上安装的可选组件。
          • 在“组件网关”下,选择“启用组件网关”(请参阅查看和访问组件网关网址)。

点击网页界面标签页。在组件网关下,点击 Ranger 以打开 Ranger 网页界面。使用 Ranger 管理员用户名(例如“admin”)和密码登录。

Ranger 管理员日志

Ranger 管理员日志可在 Logging 中作为 ranger-admin-root 日志。