Crea un clúster Hadoop

Puedes usar Dataproc 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 Dataproc 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 Dataproc, 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 acerca de Dataproc, consulta la sección sobre la documentación de Cloud Dataproc.

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 API, Cloud Bigtable Admin API, Dataproc, and Cloud Storage JSON.

    Habilita las API

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

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

    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 la herramienta gsutil mediante la ejecución del siguiente comando:
    gcloud components install gsutil
  • 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

Crea un bucket de Cloud Storage

Dataproc usa un bucket de Cloud Storage para almacenar archivos temporales. A fin de evitar conflictos entre nombres de archivos, crea un bucket nuevo para Dataproc.

Los nombres de los depósitos de Cloud Storage deben ser únicos a nivel global en todos los depósitos. Elige un nombre de bucket que pueda estar disponible, como un nombre que incorpore el nombre de tu proyecto de Google Cloud.

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:

gsutil mb -p [PROJECT_ID] gs://[BUCKET_NAME]

Crea el clúster de Dataproc

Ejecuta el siguiente comando para crear un clúster de Dataproc 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 documentación de gcloud dataproc clusters create 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 Dataproc

Después de configurar tu clúster de Dataproc, 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 CLI de cbt 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 CLI de cbt:
        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 Dataproc.

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

gcloud dataproc clusters delete [DATAPROC_CLUSTER_NAME]

¿Qué sigue?