Implementa un servicio de Dataproc Metastore

En esta página, se muestra cómo crear un servicio de Dataproc Metastore y conectarse a él desde un clúster de Dataproc. Después, establece una conexión SSH al clúster, inicia una instancia de Apache Hive y ejecuta algunas consultas básicas.

Dataproc Metastore te proporciona un almacén de datos de Hive (HMS) totalmente compatible, que es el estándar establecido en el ecosistema de macrodatos de código abierto para administrar metadatos técnicos. Este servicio te ayuda a administrar los metadatos de los data lakes y proporciona interoperabilidad entre las diversas herramientas de procesamiento de datos que usas.


Para seguir la guía paso a paso sobre esta tarea de forma directa en la consola de Google Cloud, haz clic en Guiarme:

Guiarme


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. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. Habilita las API de Dataproc Metastore, Dataproc.

    Habilita las API

  5. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  6. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  7. Habilita las API de Dataproc Metastore, Dataproc.

    Habilita las API

Funciones requeridas

A fin de obtener los permisos que necesitas para crear un Dataproc Metastore y un clúster de Dataproc, pídele a tu administrador que te otorgue los siguientes roles de IAM:

  • Para otorgar acceso completo a todos los recursos de Dataproc Metastore, incluida la configuración de los permisos de IAM: (roles/metastore.admin) en la cuenta de usuario o de servicio
  • Para otorgar control total de los recursos de Dataproc Metastore, sigue estos pasos: Editor de Dataproc Metastore (roles/metastore.editor) en la cuenta de usuario o de servicio
  • Para crear un clúster de Dataproc, haz lo siguiente: (roles/dataproc.worker) en la cuenta de servicio

Si quieres obtener más información para otorgar funciones, consulta Administra el acceso.

Estos roles predefinidos contienen los permisos necesarios para crear un Dataproc Metastore y un clúster de Dataproc. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Los siguientes permisos son necesarios para crear un Dataproc Metastore y un clúster de Dataproc:

  • Para crear un servicio de Dataproc Metastore, sigue estos pasos: metastore.services.create en la cuenta de usuario o de servicio
  • Para crear un clúster de Dataproc, haz lo siguiente: Dataproc worker (roles/dataproc.worker) en la cuenta de servicio

Es posible que también puedas obtener estos permisos con funciones personalizadas o con otras funciones predefinidas.

Para obtener más información sobre las funciones y los permisos específicos de Dataproc Metastore, consulta Descripción general de IAM de Dataproc Metastore.

Crea un servicio de Dataproc Metastore

En las siguientes instrucciones, se muestra cómo crear un servicio básico de Dataproc Metastore mediante la configuración predeterminada proporcionada.

Console

  1. En la consola de Google Cloud, ve a la página Dataproc Metastore.

    Ir a Dataproc Metastore

  2. En el menú de navegación, haz clic en +Crear.

    Se abrirá el diálogo Crear servicio de Metastore.

  3. Selecciona Dataproc Metastore 2.

  4. En el campo Nombre del servicio, ingresa example-service.

  5. En el campo Ubicación de los datos, selecciona us-central1.

  6. Para las opciones de configuración del servicio restantes, usa los valores predeterminados proporcionados.

  7. Para crear e iniciar el servicio, haz clic en Enviar.

Tu servicio nuevo de almacén de metadatos aparece en la página de Dataproc Metastore. El estado muestra Creando hasta que el servicio esté listo para usarse. Cuando esté lista, el estado cambiará a Active. Aprovisionar el servicio puede tardar unos minutos.

En la siguiente captura de pantalla, se muestra un ejemplo de la página Crear servicio (Create service) con algunos de los valores predeterminados proporcionados.

La página Crear servicio

CLI de gcloud

Para crear un servicio de almacén de metadatos con los valores predeterminados proporcionados, ejecuta el siguiente comando gcloud metastore services create:

 gcloud metastore services create example-service \
     --location=us-central1 \
     --instance-size=MEDIUM

Con este comando, se crea un servicio llamado example-service en la región predeterminada (us-central1) y con el tamaño de instancia predeterminado (MEDIUM).

REST

Sigue las instrucciones de la API para crear un servicio mediante el Explorador de API.

Crea un clúster de Dataproc y conéctate a Dataproc Metastore

A continuación, debes crear un clúster de Dataproc y conectarte a tu almacén de metadatos desde el clúster. Luego, tu clúster usará el servicio de almacén de metadatos, ya que es el HMS. El clúster que creas aquí usará la configuración predeterminada proporcionada.

Console

  1. En la consola de Google Cloud, ve a la página Clústeres de Dataproc.

    Ir a Clústeres de Dataproc

  2. En la barra de navegación, selecciona +Crear clúster.

    Se abrirá el cuadro de diálogo Crear un clúster, en el que se proporcionan varias opciones de infraestructura entre las que puedes elegir.

  3. En la fila Clúster en Compute Engine, selecciona Crear.

    Se abrirá la página Crear un clúster de Dataproc en Compute Engine.

  4. En el campo Nombre del clúster, ingresa example-cluster.

  5. En los menús Región y Zona, selecciona us-central1.

  6. Para las opciones restantes de Configurar clúster, usa los valores predeterminados proporcionados.

  7. En el menú de navegación, haz clic en la pestaña Personalizar clúster (opcional).

  8. En la sección Dataproc Metastore, selecciona el servicio de almacén de metadatos que creaste antes.

    Si seguiste este instructivo tal como está, se llamará example-service.

  9. Para las opciones de configuración del servicio restantes, usa los valores predeterminados proporcionados.

  10. Para crear el clúster, haz clic en Crear.

    Tu clúster nuevo aparecerá en la lista de Clústeres. El estado del clúster muestra Aprovisionamiento hasta que esté listo para usarse. Cuando esté lista, el estado cambiará a Active. Aprovisionar el clúster puede tardar unos minutos.

CLI de gcloud

Para crear un clúster con la configuración predeterminada proporcionada, ejecuta el siguiente comando gcloud dataproc clusters create:

 gcloud dataproc clusters create example-cluster \
    --dataproc-metastore=projects/PROJECT_ID/locations/us-central1/services/example-service \
    --region=us-central1

Reemplaza PROJECT_ID por el ID del proyecto en el que creaste tu servicio de Dataproc Metastore.

REST

Sigue las instrucciones de la API para crear un clúster mediante el Explorador de API.

Conéctate a Apache Hive con un clúster de Dataproc

En los próximos pasos, se muestra cómo ejecutar algunos comandos de ejemplo en Apache Hive para crear una base de datos y una tabla.

A continuación, abre una sesión SSH en el clúster de Dataproc y, luego, inicia una sesión de Hive.

  1. En la consola de Google Cloud, ve a la página Instancias de VM.
  2. En la lista de instancias de máquina virtual, haz clic en SSH junto a example-cluster.

Se abrirá una ventana del navegador en tu directorio principal en el nodo con un resultado similar al siguiente:

Connected, host fingerprint: ssh-rsa ...
Linux cluster-1-m 3.16.0-0.bpo.4-amd64 ...
...
example-cluster@cluster-1-m:~$

Para iniciar Hive y crear una base de datos y una tabla, ejecuta los siguientes comandos en la sesión de SSH:

  1. Iniciar Hive.

    hive
    
  2. Crea una base de datos llamada myDatabase.

    create database myDatabase;
    
  3. Muestra la base de datos que creaste.

    show databases;
    
  4. Usa la base de datos que creaste.

    use myDatabase;
    
  5. Crea una tabla llamada myTable.

    create table myTable(id int,name string);
    
  6. Enumera las tablas en myDatabase.

    show tables;
    
  7. Describe el esquema de la tabla que creaste.

    desc MyTable;
    

Cuando ejecutes estos comandos, se mostrará un resultado similar al siguiente:

$hive

hive> show databases;
OK
default
hive> create database myDatabase;
OK
hive> use myDatabase;
OK
hive> create table myTable(id int,name string);
OK
hive> show tables;
OK
myTable
hive> desc myTable;
OK
id                      int
name                    string

Limpia

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

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. Si el proyecto que deseas borrar está vinculado con una organización, expande la lista Organización en la columna Nombre.
  3. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  4. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

Como alternativa, puedes borrar los recursos que se usan en este instructivo de la siguiente manera:

  1. Borra el servicio de Dataproc Metastore.

    Console

    1. En la consola de Google Cloud, abre la página Dataproc Metastore:

      Ir a Dataproc Metastore

    2. En la lista de servicios, selecciona example-service.

    3. En la barra de navegación, haz clic en Borrar.

      Se abrirá el cuadro de diálogo Borrar servicio.

    4. En el cuadro de diálogo, haz clic en Borrar.

      Tu servicio ya no aparece en la lista de servicios.

    CLI de gcloud

    Para borrar tu servicio, ejecuta el siguiente comando gcloud metastore services delete.

     gcloud metastore services delete example-service \
         --location=us-central1

    REST

    Sigue las instrucciones de la API para borrar un servicio mediante el Explorador de API.

    Todas las eliminaciones se completa de forma exitosa de inmediato.

  2. Borra el bucket de Cloud Storage para el servicio de Dataproc Metastore.

  3. Borra el clúster de Dataproc que usó el servicio de Dataproc Metastore.

¿Qué sigue?