Conecta hiperdiscos a VMs de Managed Service for Apache Spark

En esta página, se muestra cómo conectar Hyperdisk a máquinas virtuales (VMs) en un clúster de Managed Service para Apache Spark. Puedes configurar los discos de forma independiente para los grupos de nodos principales, nodos trabajadores principales y nodos trabajadores secundarios. Estos discos se adjuntan a los nodos del clúster, además del disco de arranque y cualquier SSD local adjunta a los nodos del clúster.

Antes de comenzar

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that you have the permissions required to complete this guide.

  3. Verify that billing is enabled for your Cloud de Confiance project.

  4. Enable the Managed Service for Apache Spark API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

Roles obligatorios

Se requieren ciertos roles de IAM para ejecutar los ejemplos de esta página. Según las políticas de la organización, es posible que estos roles ya se hayan otorgado. Para verificar las asignaciones de roles, consulta ¿Necesitas otorgar roles?.

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Funciones de usuario

Para obtener los permisos que necesitas para crear un clúster de Managed Service para Apache Spark, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Función de cuenta de servicio

Para asegurarte de que la cuenta de servicio predeterminada de Compute Engine tenga los permisos necesarios para crear un clúster de Managed Service for Apache Spark, pídele a tu administrador que otorgue el rol de IAM de trabajador de Dataproc (roles/dataproc.worker) a la cuenta de servicio predeterminada de Compute Engine en el proyecto.

Características del disco

Los discos adjuntos tienen las siguientes características:

  • Ciclo de vida: La vida útil de un disco conectado coincide con la de la VM a la que está conectado. Managed Service para Apache Spark crea el disco cuando crea la VM y lo borra cuando borra la VM.
  • Inmutabilidad: No puedes actualizar las propiedades de un disco conectado, como el tamaño, las IOPS o la capacidad de procesamiento, después de crear el clúster.
  • Activación y uso: Managed Service para Apache Spark activa los discos en /mnt/N, donde N es un número entero positivo (por ejemplo, /mnt/1, /mnt/2). Los datos de HDFS y los datos de Scratch, como las salidas de Shuffle, usan los discos conectados en lugar del disco persistente de arranque.

Configuración del disco

Puedes especificar los siguientes parámetros de configuración del disco cuando conectas discos a los nodos del clúster de Managed Service para Apache Spark:

  • Tipo de disco (Disk type): Es el tipo de disco que se conectará a las instancias de VM. Este campo es obligatorio. Se admiten los siguientes hiperdiscos:

    • hyperdisk-balanced
    • hyperdisk-extreme
    • hyperdisk-ml
    • hyperdisk-throughput

    Los discos de tipo hyperdisk balanced high availability y persistentes no se pueden conectar a los nodos del clúster.

  • Size (tamaño): Es el tamaño del disco (opcional). El valor debe ser un número entero seguido de GB para gigabyte o TB para terabyte. Por ejemplo, 10GB conecta un disco de 10 gigabytes. Para obtener más información, consulta Límites de tamaño de Hyperdisk.

  • IOPs (opcional): Indica las IOPS que se deben aprovisionar para el disco adjunto. Este parámetro establece el límite para las operaciones de E/S de disco por segundo. Para obtener más información, consulta Niveles de rendimiento predeterminados.

  • Capacidad de procesamiento (opcional): Indica la capacidad de procesamiento que se debe aprovisionar para el disco adjunto. Este parámetro establece el límite de capacidad de procesamiento en MiB por segundo. Para obtener más información, consulta Niveles de rendimiento predeterminados.

Cómo adjuntar discos a un clúster

Puedes adjuntar discos cuando creas un clúster de Managed Service for Apache Spark con gcloud CLI o la API de Dataproc para especificar las configuraciones de disco.

gcloud CLI

  • Para conectar discos cuando creas un clúster, usa las marcas --master-attached-disks, --worker-attached-disks o --secondary-worker-attached-disks con el comando gcloud dataproc clusters create.

  • Cada marca acepta una lista de configuraciones de disco separadas por punto y coma. Cada configuración de disco es una lista separada por comas de pares clave-valor para type, size, iops y throughput (consulta Configuración del disco).

Ejemplo: El siguiente comando crea un clúster y adjunta dos hiperdiscos a cada nodo trabajador principal.

gcloud dataproc clusters create CLUSTER_NAME \
    --region=REGION \
    --worker-attached-disks='type=hyperdisk-balanced,size=100GB,iops=5000,throughput=200;type=hyperdisk-throughput,size=9000GB'

API

  • Para conectar discos, incluye un array attachedDiskConfigs en el objeto diskConfig para el grupo de instancias masterConfig, workerConfig o secondaryWorkerConfig.

  • Proporciona la configuración en el cuerpo de una solicitud a la API de clusters.create.

Ejemplo: El siguiente fragmento JSON muestra un array attachedDiskConfigs que adjunta dos hiperdiscos.

[
  {
    "type": "hyperdisk-balanced",
    "diskSizeGb": 100,
    "provisionedIops": 5000,
    "provisionedThroughput": 200
  },
  {
    "type": "hyperdisk-throughput",
    "diskSizeGb": 9000
  }
]