本页介绍了如何设置 Google Cloud 项目,为 Dataproc Metastore 管理的迁移做好准备。
准备工作
了解代管式迁移的工作原理。
设置或有权访问以下服务:
- 使用 Spanner 配置的 Dataproc Metastore 数据库类型。
一个配置了专用 API 的 Cloud SQL for MySQL 数据库实例 IP。对于 Cloud SQL 实例,请确保:
Cloud SQL 实例配置了 VPC 网络,该网络使用 所需的子网
Cloud SQL 实例使用的数据库架构与 Hive 兼容 在 Dataproc Metastore 服务上运行的 Metastore 版本 (将数据复制到的目标位置)。
Cloud SQL 实例包含 在 Datastream 和 Dataproc Metastore 之间建立连接 以及 Dataproc Metastore 和 Cloud SQL。
所需的角色
要获取创建 Dataproc Metastore 所需的权限并开始托管迁移, 请让管理员授予您 以下 IAM 角色:
-
如需授予对所有 Dataproc Metastore 资源的完整访问权限(包括设置 IAM 权限),请为 Dataproc Metastore 用户账号或服务账号授予 Dataproc Metastore 管理员 (
roles/metastore.admin
) 角色: -
要授予对 Dataproc Metastore 资源的完全控制权,请执行以下操作:
Dataproc Metastore Editor (
roles/metastore.editor
) 针对 Dataproc Metastore 用户账号或服务账号 -
如需授予启动迁移的权限,请执行以下操作:
迁移管理员 (
roles/metastore.migrationAdmin
) 针对服务项目中的 Dataproc Metastore 服务代理
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
根据您的项目设置授予其他角色
根据项目的配置方式,您可能需要添加以下其他角色。如需了解如何向相应账号授予这些角色,请参阅本页下文中的前提条件部分。
- 将 Network User (
roles/compute.networkUser
) 角色授予 Dataproc Metastore 服务代理和 针对服务项目的 [Google API 服务代理]。 - 将 Network Admin (
roles/compute.networkAdmin
) 角色授予 宿主项目上的 Datastream 服务代理。
如果您的 Cloud SQL 实例与 Dataproc Metastore 服务项目位于不同的项目中,请执行以下操作:
- 向 Cloud SQL 实例项目中的 Dataproc Metastore 服务代理授予
roles/cloudsql.client
角色和roles/cloudsql.instanceUser
角色。
如果 Change-Data-Capture 流水线的 Cloud Storage 存储桶与您的 Dataproc Metastore 服务项目位于不同的项目中:
- 请确保您的 Datastream 服务代理具有向存储桶写入数据所需的权限。通常,这些角色是
roles/storage.objectViewer
、roles/storage.objectCreator
和roles/storage.legacyBucketReader
角色。
代管式迁移前提条件
Dataproc Metastore 使用代理和 变更数据捕获流水线来协助数据传输。 在开始转移之前,请务必了解这些功能的运作方式。
关键术语
- 服务项目:服务项目是您要在其中执行操作的 Google Cloud 项目 创建了 Dataproc Metastore 服务。
- 宿主项目:宿主项目是指 您的共享 VPC 网络。可以关联一个或多个服务项目 才能使用这些共享网络如需更多信息 请参阅共享 VPC。
- 在服务项目中启用 Datastream API。
向服务项目中的 Dataproc Metastore Service Agent 授予
roles/metastore.migrationAdmin
角色。gcloud projects add-iam-policy-binding SERVICE_PROJECT --role "roles/metastore.migrationAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-metastore.iam.gserviceaccount.com"
添加以下防火墙规则。
要在 Dataproc Metastore 与您的私有 IP Cloud SQL 实例。
允许来自健康检查的流量的防火墙规则 探测网络负载 SOCKS5 代理的负载平衡器。例如:
gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--allow=tcp:1080 --source-ranges=35.191.0.0/16,130.211.0.0/22
端口
1080
是 SOCKS5 代理服务器的运行位置。允许从负载均衡器传入 SOCKS5 代理 MIG 的防火墙规则。例如:
gcloud compute firewall-rules create
RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--action=ALLOW --rules=all --source-ranges=PROXY_SUBNET_RANGE 允许流量从 Private Service Connect 服务连接到达负载均衡器的防火墙规则。例如:
gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --allow=tcp:1080 --source-ranges=NAT_SUBNET_RANGE
允许 Datastream 使用
/29
CIDR IP 范围的防火墙规则 创建专用 IP 连接例如:gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --action=ALLOW --rules=all --source-ranges=CIDR_RANGE
(可选)向共享 VPC 添加角色
如果您使用共享 VPC,请按照以下步骤操作。
如需详细了解共享 VPC,请参阅服务项目管理员。
将
roles/compute.networkUser
角色授予 Dataproc Metastore Service Agent 和 Google API 服务代理。gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkUser" --member "serviceAccount:service-SERVICE_ACCOUNT@gcp-sa-metastore.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkUser" --member "serviceAccount:SERVICE_PROJECT@cloudservices.gserviceaccount.com"
将
roles/compute.networkAdmin
角色授予 Datastream Service Agent 在宿主项目上gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-datastream.iam.gserviceaccount.com"
如果您无法授予 roles/compute.networkAdmin
角色,请创建一个
具有共享 VPC 中所列权限的自定义角色
前提条件。
开始迁移时需要这些权限,以建立 使用 Datastream 在宿主项目中的 VPC 网络之间建立对等互连。
迁移开始后,您可以立即移除此角色。如果您 在迁移完成之前移除角色,Dataproc Metastore 无法清理对等互连作业。在这种情况下,您必须自行清理作业。