Crea un clúster Hadoop

Puedes usar Managed Service para Apache Spark para crear una o más instancias de Compute Engine que puedan conectarse a una instancia de Bigtable y ejecutar trabajos de Hadoop. En esta página, se explica cómo usar Managed Service para Apache Spark para automatizar las siguientes tareas:

  • Instalar Hadoop y el cliente de HBase para Java
  • Configura Hadoop y Bigtable
  • Configurar los alcances de autorización correctos de Bigtable

Después de crear el clúster de Managed Service para Apache Spark, puedes usarlo para ejecutar trabajos de Hadoop que lean y escriban datos hacia y desde Bigtable.

En esta página, se asume que estás familiarizado con Hadoop. Para obtener información adicional sobre Managed Service para Apache Spark, consulta la documentación de Managed Service para Apache Spark.

Antes de comenzar

Antes de comenzar, necesitarás realizar las siguientes tareas:

  • Crear una instancia de Bigtable. Asegúrate de anotar el ID del proyecto y de la instancia de Bigtable.
  • Habilita las API de Cloud Bigtable, Cloud Bigtable Admin, Managed Service para Apache Spark y Cloud Storage JSON.

    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.

    Habilitar las API

  • Verifica que tu cuenta de usuario tenga una función que incluye el permiso storage.objects.get.

    Abre la página IAM en la Google Cloud consola.

    Abrir la página IAM

  • Instala Google Cloud CLI. Consulta las instrucciones de configuración de la CLI de gcloud para obtener más detalles.
  • Instala Apache Maven, que se usa para ejecutar un trabajo de Hadoop de muestra.

    Ejecuta el siguiente comando en Debian GNU/Linux o Ubuntu:

    sudo apt-get install maven

    Ejecuta el siguiente comando en Red Hat Enterprise Linux o CentOS:

    sudo yum install maven

    Instala Homebrew en macOS y, luego, ejecuta el siguiente comando:

    brew install maven
  • Clona el repositorio de GitHub GoogleCloudPlatform/cloud-bigtable-examples, que contiene el ejemplo de un trabajo de Hadoop que usa Bigtable:
    git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git

Cree un bucket de Cloud Storage

Managed Service para Apache Spark usa un bucket de Cloud Storage para almacenar archivos temporales. Para evitar conflictos entre nombres de archivos, crea un bucket nuevo para Managed Service para Apache Spark.

Los nombres de bucket de Cloud Storage deben ser únicos a nivel global en todos los buckets. Elige un nombre de bucket que probablemente esté disponible, como un nombre que incorpore el nombre de tu Google Cloud proyecto.

Después de elegir un nombre, usa el siguiente comando para crear un bucket nuevo y reemplaza los valores entre corchetes con los valores apropiados:

gcloud storage buckets create gs://[BUCKET_NAME] --project=[PROJECT_ID]

Crea el clúster de Managed Service para Apache Spark

Ejecuta el siguiente comando para crear un clúster de Managed Service para Apache Spark con cuatro nodos trabajadores que reemplacen los valores entre corchetes con los valores adecuados:

gcloud dataproc clusters create [DATAPROC_CLUSTER_NAME] --bucket [BUCKET_NAME] \
    --region [region] --num-workers 4 --master-machine-type n1-standard-4 \
    --worker-machine-type n1-standard-4

Consulta la sección sobre la gcloud dataproc clusters create documentación para conocer la configuración adicional que puedes usar. Si aparece un mensaje de error que incluye el texto Insufficient 'CPUS' quota, intenta establecer la marca --num-workers en un valor inferior.

Prueba el clúster de Managed Service para Apache Spark

Después de configurar tu clúster de Managed Service para Apache Spark, puedes probarlo mediante la ejecución de un trabajo de Hadoop de muestra que cuenta la cantidad de veces que una palabra aparece en un archivo de texto. El trabajo de muestra usa Bigtable para almacenar los resultados de la operación. Puedes usar este trabajo de muestra como referencia cuando configures tu trabajo de Hadoop propio.

Ejecuta el trabajo de muestra de Hadoop

  1. En el directorio donde clonaste el repositorio de GitHub, cambia al directorio java/dataproc-wordcount.
  2. Ejecuta el siguiente comando para compilar el proyecto y reemplaza los valores entre corchetes con los valores adecuados:

    mvn clean package -Dbigtable.projectID=[PROJECT_ID] \
        -Dbigtable.instanceID=[BIGTABLE_INSTANCE_ID]
    
  3. Ejecuta el siguiente comando para iniciar el trabajo de Hadoop y reemplaza los valores entre corchetes con los valores adecuados:

    ./cluster.sh start [DATAPROC_CLUSTER_NAME]
    

Cuando el trabajo está completo, se muestra el nombre de la tabla de salida, que es la palabra WordCount seguida de un guion y un número único:

Output table is: WordCount-1234567890

Verifica los resultados del trabajo de Hadoop

De manera opcional, después de ejecutar el trabajo de Hadoop, puedes usar la cbt CLI para verificar que el trabajo se haya ejecutado correctamente:

  1. Abre una ventana de la terminal en Cloud Shell.

    Abrir en Cloud Shell

  2. Instala la cbt CLI :
        gcloud components update
        gcloud components install cbt
  3. Analiza la tabla de salida para ver los resultados del trabajo de Hadoop y reemplaza [TABLE_NAME] con el nombre de tu tabla de salida:
        cbt -instance [BIGTABLE_INSTANCE_ID] read [TABLE_NAME]
      

Ahora que se verificó que el clúster está configurado correctamente, puedes usarlo para ejecutar tus propios trabajos de Hadoop.

Borra el clúster de Managed Service para Apache Spark

Cuando termines de usar el clúster de Managed Service para Apache Spark, ejecuta el siguiente comando para cerrar y borrar el clúster, y reemplaza [DATAPROC_CLUSTER_NAME] con el nombre de tu clúster de Managed Service para Apache Spark:

gcloud dataproc clusters delete [DATAPROC_CLUSTER_NAME]

¿Qué sigue?