使用可选组件功能创建 Dataproc 集群时,可以安装 Ranger 等其他组件。本页面介绍了 Ranger 组件。
Apache Ranger 组件是一个开源框架,用于管理 Hadoop 生态系统的权限和审核。Ranger 管理员服务器和网页界面可用于集群第一个主节点上的端口 6080 上。
另请参阅:
安装组件
在创建 Dataproc 集群时安装组件。 组件可添加到使用 Dataproc 版本 1.3 及更高版本创建的 集群中。Ranger 组件需要安装 Solr 组件,如下所示:
如需查看每个 Dataproc 映像版本中包含的组件版本,请参阅支持的 Dataproc 版本。
安装步骤
- 设置您的 Ranger 管理员密码: - 将 Cloud KMS CryptoKey Encrypter/Decrypter 角色授予集群服务账号:默认情况下,集群服务账号会设置为 Compute Engine 默认服务账号,该账号的格式如下:project-number-compute@developer.gserviceaccount.com - 示例:将 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 
 
- 示例:将 Cloud KMS CryptoKey Encrypter/Decrypter 角色授予 Compute Engine 默认服务账号:
- 使用密钥管理服务 (KMS) 密钥加密 Ranger 管理员用户的密码。
对于 2.2 之前的映像版本集群,密码必须至少包含 8 个字符,且至少包含一个字母和一个数字字符。对于 2.2 及更高映像版本的集群,密码必须至少包含 8 个字符,并且至少包含一个大写字母、一个小写字母和一个数字字符。
- 示例:
- 创建密钥环:
gcloud kms keyrings create my-keyring --location=global 
- 创建密钥:
gcloud kms keys create my-key \ --location=global \ --keyring=my-keyring \ --purpose=encryption 
- 加密您的 Ranger 管理员用户密码:
echo 'my-ranger-admin-password' | \ gcloud kms encrypt \ --location=global \ --keyring=my-keyring \ --key=my-key \ --plaintext-file=- \ --ciphertext-file=admin-password.encrypted 
 
- 创建密钥环:
 
- 示例:
- 将加密密码上传到项目中的 Cloud Storage 存储桶。
- 示例:gcloud storage cp admin-password.encrypted gs://my-bucket 
 
- 示例:
 
- 将 Cloud KMS CryptoKey Encrypter/Decrypter 角色授予集群服务账号:默认情况下,集群服务账号会设置为 Compute Engine 默认服务账号,该账号的格式如下:
- 创建您的集群: - 安装 Ranger 组件时,还必须安装 Solr 组件,如下所示。- Ranger 组件依赖 Solr 组件来存储和查询其审核日志,该日志默认使用 HDFS 作为存储。在删除集群时,HDFS 数据也会被删除。要在 Cloud Storage 上配置 Solr 组件以存储数据(包括 Ranger 审核日志),请在创建集群时使用 dataproc:solr.gcs.path=gs://<bucket>集群属性。删除集群后,Cloud Storage 数据仍然存在。
 
- Ranger 组件依赖 Solr 组件来存储和查询其审核日志,该日志默认使用 HDFS 作为存储。在删除集群时,HDFS 数据也会被删除。要在 Cloud Storage 上配置 Solr 组件以存储数据(包括 Ranger 审核日志),请在创建集群时使用 
- 通过设置 dataproc:ranger.kms.key.uri和dataproc:ranger.admin.password.uri集群属性将 KMS 密钥和密码 Cloud Storage URI 传递给集群创建命令。
- 或者,您可通过设置 dataproc:ranger.db.admin.password.uri集群属性,通过加密的 Cloud Storage 文件 URI 传递 Ranger 数据库的管理员用户密码。
- 默认情况下,Ranger 组件使用在集群第一个主节点上运行的 MySql 数据库实例。在 MySQL 实例中,通过将变量设置为 ON来启用log_bin_trust_function_creators标志。设置此标志可控制是否可以信任存储函数的创建者。成功创建集群并配置 Ranger 后,您可以将log_bin_trust_function_creators重置为OFF。
- 如想在删除集群后保留 Ranger 数据库,请使用 Cloud SQL实例作为外部 MySql 数据库。 - 将 dataproc:ranger.cloud-sql.instance.connection.name集群属性设置为 Cloud SQL 实例。
- 将 dataproc:ranger.cloud-sql.root.password.uri集群属性设置为 Cloud SQL 实例的 KMS 密钥加密根密码的 Cloud Storage URI。
- 设置 dataproc:ranger.cloud-sql.use-private-ip集群属性以指示是否通过专用 IP 与 Cloud SQL 实例连接。
 - Ranger 组件使用 Cloud SQL Auth 代理连接到 Cloud SQL 实例。如需使用代理: - 在创建集群时设置 sqlservice.adminAPI 范围(请参阅使用 OAuth 2.0 为请求授权)。如果使用的是gcloud dataproc cluster create命令,请添加--scopes=default,sql-admin参数。
- 在您的项目中启用 SQL Admin API。
- 确保集群服务账号具有 Cloud SQL Editor 角色。
- 由于主节点上的 Cloud SQL Auth 代理通过端口 3307 创建到 Cloud SQL 实例的出站流量连接,因此请确保允许从主节点到 Cloud SQL 实例的出站流量 TCP 连接通过端口 3307。如需了解详情,请参阅 Cloud SQL Auth 代理的工作原理。
 - 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 字段中设置以下集群属性: - 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"
 - 控制台- 启用组件和组件网关。
- 在 Google Cloud 控制台中,打开 Dataproc 创建集群页面。选中“设置集群”面板。
- 在组件部分中执行以下操作:- 在“可选组件”下,选择“Ranger”、“Solr”以及其他一些要在集群上安装的可选组件。
- 在“组件网关”下,选择“启用组件网关”(请参阅查看和访问组件网关网址)。
 
 
 
- 将 
 
- 安装 Ranger 组件时,还必须安装 Solr 组件,如下所示。
点击“网页界面”标签页。在组件网关下方,点击 Ranger 以打开 Ranger 网页界面。使用 Ranger 管理员用户名(例如“admin”)和密码登录。
Ranger 管理员日志
Ranger 管理员日志可在 Logging 中作为 ranger-admin-root 日志。
