Dataproc Ranger 组件

使用可选组件功能创建 Dataproc 集群时,可以安装其他组件。本页面介绍了 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 数据库实例。如想在删除集群后保留 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. 启用组件和组件网关。
        • 在 Cloud Console 中,打开 Dataproc 创建集群页面。选中“设置集群”面板。
        • 在组件部分中执行以下操作:
          • 在“可选组件”下,选择“Ranger”、“Solr”以及其他一些要在集群上安装的可选组件。
          • 在“组件网关”下,选择“启用组件网关”(请参阅查看和访问组件网关网址)。

Ranger 管理员日志

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