Crear un clúster de Hadoop
Puedes usar Dataproc para crear una o varias instancias de Compute Engine que puedan conectarse a una instancia de Bigtable y ejecutar tareas 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
- Configurar Hadoop y Bigtable
- Definir los ámbitos de autorización correctos para Bigtable
Una vez que hayas creado tu clúster de Dataproc, podrás usarlo para ejecutar trabajos de Hadoop que lean y escriban datos en Bigtable.
En esta página se da por hecho que ya conoces Hadoop. Para obtener más información sobre Dataproc, consulta la documentación de Dataproc.
Antes de empezar
Antes de empezar, debes completar las siguientes tareas:
- Crea una instancia de Bigtable. Asegúrate de anotar el ID del proyecto y el ID de la instancia de Bigtable.
-
Enable the Cloud Bigtable API, Cloud Bigtable Admin API, Dataproc, and Cloud Storage JSON APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - Comprueba que tu cuenta de usuario tenga un rol que incluya el permiso
storage.objects.get
.Abre la página de IAM en la Google Cloud consola.
- Instala Google Cloud CLI. Consulta las instrucciones de configuración de la CLI de gcloud para obtener más información.
-
Instala Apache Maven, que se usa para ejecutar un trabajo de Hadoop de ejemplo.
En Debian GNU/Linux o Ubuntu, ejecuta el siguiente comando:
sudo apt-get install maven
En Red Hat Enterprise Linux o CentOS, ejecuta el siguiente comando:
sudo yum install maven
En macOS, instala Homebrew y, a continuación, ejecuta el siguiente comando:
brew install maven
- Clona el repositorio de GitHub GoogleCloudPlatform/cloud-bigtable-examples,
que contiene un ejemplo de un trabajo de Hadoop que usa Bigtable:
git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git
Crea un segmento de Cloud Storage
Dataproc usa un segmento de Cloud Storage para almacenar archivos temporales. Para evitar conflictos con los nombres de los archivos, crea un nuevo contenedor para Dataproc.
Los nombres de los segmentos de Cloud Storage deben ser únicos en todos los segmentos. Elige un nombre de contenedor que probablemente esté disponible, como uno que incluya el nombre de tu proyecto. Google Cloud
Después de elegir un nombre, usa el siguiente comando para crear un nuevo contenedor. Sustituye los valores entre corchetes por los valores correspondientes:
gcloud storage buckets create gs://[BUCKET_NAME] --project=[PROJECT_ID]
Crea el clúster de Dataproc
Ejecuta el siguiente comando para crear un clúster de Dataproc con cuatro nodos de trabajador. Sustituye los valores entre corchetes por los valores correspondientes:
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 documentación de gcloud dataproc clusters create
para ver otros ajustes que puedes configurar. Si aparece un mensaje de error que incluye el texto Insufficient 'CPUS' quota
, prueba a asignar un valor inferior a la marca --num-workers
.
Probar el clúster de Dataproc
Una vez que hayas configurado tu clúster de Dataproc, puedes probarlo ejecutando una tarea de Hadoop de ejemplo que cuente el número de veces que aparece una palabra en un archivo de texto. La tarea de ejemplo usa Bigtable para almacenar los resultados de la operación. Puedes usar este trabajo de ejemplo como referencia al configurar tus propios trabajos de Hadoop.
Ejecutar la tarea de Hadoop de ejemplo
- En el directorio en el que has clonado el repositorio de GitHub, cambia al directorio
java/dataproc-wordcount
. Ejecuta el siguiente comando para compilar el proyecto. Sustituye los valores entre corchetes por los valores correspondientes:
mvn clean package -Dbigtable.projectID=[PROJECT_ID] \ -Dbigtable.instanceID=[BIGTABLE_INSTANCE_ID]
Ejecuta el siguiente comando para iniciar el trabajo de Hadoop y sustituye los valores entre corchetes por los que correspondan:
./cluster.sh start [DATAPROC_CLUSTER_NAME]
Cuando se completa el trabajo, 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
Verificar los resultados del trabajo de Hadoop
De forma opcional, después de ejecutar el trabajo de Hadoop, puedes usar la CLI de
cbt
para verificar que se ha ejecutado correctamente:
-
Abre una ventana de terminal en Cloud Shell.
- Instala la
CLI
cbt
:gcloud components update
gcloud components install cbt
- Analiza la tabla de resultados para ver los resultados del trabajo de Hadoop. Sustituye
[TABLE_NAME]
por el nombre de tu tabla de resultados:cbt -instance [BIGTABLE_INSTANCE_ID] read [TABLE_NAME]
Ahora que has verificado que el clúster está configurado correctamente, puedes usarlo para ejecutar tus propios trabajos de Hadoop.
Eliminar el clúster de Dataproc
Cuando hayas terminado de usar el clúster de Dataproc, ejecuta el siguiente comando para apagarlo y eliminarlo. Sustituye [DATAPROC_CLUSTER_NAME]
por el nombre de tu clúster de Dataproc:
gcloud dataproc clusters delete [DATAPROC_CLUSTER_NAME]
Siguientes pasos
- Consulta más información sobre Dataproc.
- Empieza a usar el cliente de HBase para Java.