Crea un clúster de Dataproc con la CLI de gcloud

En esta página, se muestra cómo usar la herramienta de línea de comandos gcloud de Google Cloud CLI para crear un clúster de Dataproc, ejecutar un trabajo de Apache Spark en el clúster y, luego, modificar la cantidad de trabajadores en el clúster.

Puedes averiguar cómo realizar las mismas tareas (o similares) con las guías de inicio rápido para usar el Explorador de APIs, la consola de Google Cloud en Crea un clúster de Dataproc con la consola de Google Cloud y las bibliotecas cliente en Crea un clúster de Dataproc con bibliotecas cliente.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. Instala Google Cloud CLI.

  3. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. Crea o selecciona un Google Cloud proyecto.

    Roles necesarios para seleccionar o crear un proyecto

    • Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
    • Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (roles/resourcemanager.projectCreator), que contiene el permiso resourcemanager.projects.create. Obtén más información para otorgar roles.
    • Crea un Google Cloud proyecto:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto Google Cloud que estás creando.

    • Selecciona el proyecto Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu Google Cloud proyecto.

  6. Verifica que tengas los permisos necesarios para completar esta guía.

  7. Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .

  8. Habilita la API de Dataproc:

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    gcloud services enable dataproc.googleapis.com
  9. Instala Google Cloud CLI.

  10. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  11. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  12. Crea o selecciona un Google Cloud proyecto.

    Roles necesarios para seleccionar o crear un proyecto

    • Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
    • Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (roles/resourcemanager.projectCreator), que contiene el permiso resourcemanager.projects.create. Obtén más información para otorgar roles.
    • Crea un Google Cloud proyecto:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto Google Cloud que estás creando.

    • Selecciona el proyecto Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu Google Cloud proyecto.

  13. Verifica que tengas los permisos necesarios para completar esta guía.

  14. Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .

  15. Habilita la API de Dataproc:

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    gcloud services enable dataproc.googleapis.com

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 Dataproc, 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 Dataproc, 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.

Crea un clúster

Para crear un clúster llamado example-cluster, ejecuta el siguiente comando de gcloud Dataproc clusters create.

gcloud dataproc clusters create example-cluster --region=REGION

Reemplaza lo siguiente:

REGION: Especifica una región en la que se ubicará el clúster.

Envía un trabajo

Si quieres enviar un trabajo de Spark de muestra que calcule un valor aproximado para pi, ejecuta el siguiente comando gcloud Dataproc jobs submit spark:

gcloud dataproc jobs submit spark --cluster example-cluster \
    --region=REGION \
    --class org.apache.spark.examples.SparkPi \
    --jars file:///usr/lib/spark/examples/jars/spark-examples.jar -- 1000

Notas:

Reemplaza lo siguiente:

REGION: Especifica la región del clúster.

  • El trabajo se ejecuta en example-cluster.
  • El class contiene el método principal para SparkPi, que calcula un valor aproximado de pi. en cada aplicación.
  • El archivo JAR contiene el código del trabajo.
  • 1000 es un parámetro de trabajo. Especifica la cantidad de tareas (iteraciones) que realiza el trabajo para calcular el valor de pi.

La ejecución del trabajo y el resultado final se muestran en la ventana de terminal:

Waiting for job output...
...
Pi is roughly 3.14118528
...
Job finished successfully.

Actualiza un clúster

Para cambiar a cinco la cantidad de trabajadores en el clúster, ejecuta el siguiente comando:

gcloud dataproc clusters update example-cluster \
    --region=REGION \
    --num-workers 5

El resultado del comando muestra los detalles del clúster:

workerConfig:
...
  instanceNames:
  - example-cluster-w-0
  - example-cluster-w-1
  - example-cluster-w-2
  - example-cluster-w-3
  - example-cluster-w-4
  numInstances: 5
statusHistory:
...
- detail: Add 3 workers.

Para disminuir la cantidad de nodos trabajadores al valor original de 2, ejecuta el siguiente comando:

gcloud dataproc clusters update example-cluster \
    --region=REGION \
    --num-workers 2

Realiza una limpieza

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.

  1. Para borrar el example-cluster, ejecuta el comando clusters delete:
    gcloud dataproc clusters delete example-cluster \
        --region=REGION
    

¿Qué sigue?