Desplegar un servicio de Dataproc Metastore

En esta página se explica cómo crear un servicio de Dataproc Metastore y conectarse a él desde un clúster de Dataproc. Después, accederás al clúster mediante SSH, iniciarás una instancia de Apache Hive y ejecutarás algunas consultas básicas.

Dataproc Metastore te proporciona un almacén de metadatos de Hive (HMS) totalmente compatible, que es el estándar establecido en el ecosistema de Big Data de código abierto para gestionar metadatos técnicos. Este servicio te ayuda a gestionar los metadatos de tus lagos de datos y proporciona interoperabilidad entre las distintas herramientas de procesamiento de datos que utilizas.

.

Para seguir las instrucciones paso a paso de esta tarea directamente en la Google Cloud consola, haga clic en Ayúdame:

Guíame


Antes de empezar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Dataproc Metastore, Dataproc APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Dataproc Metastore, Dataproc APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. Roles obligatorios

    Para obtener los permisos que necesitas para crear un metastore de Dataproc y un clúster de Dataproc, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:

    • Para conceder acceso completo a todos los recursos de Dataproc Metastore, incluido el ajuste de permisos de gestión de identidades y accesos: (roles/metastore.admin) en la cuenta de usuario o la cuenta de servicio
    • Para conceder control total sobre los recursos de Dataproc Metastore, haz lo siguiente: Editor de Dataproc Metastore (roles/metastore.editor) en la cuenta de usuario o de servicio
    • Para crear un clúster de Dataproc, sigue estos pasos: (roles/dataproc.worker) en la cuenta de servicio

    Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

    Estos roles predefinidos contienen los permisos necesarios para crear un metastore de Dataproc y un clúster de Dataproc. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

    Permisos obligatorios

    Para crear un metastore de Dataproc y un clúster de Dataproc, se necesitan los siguientes permisos:

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

    También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

    Para obtener más información sobre roles y permisos específicos de Dataproc Metastore, consulta la información general sobre la gestión de identidades y accesos de Dataproc Metastore.

    Crear un servicio de Dataproc Metastore

    Las siguientes instrucciones muestran cómo crear un servicio básico de Dataproc Metastore con la configuración predeterminada proporcionada.

    Consola

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

      Ir a Dataproc Metastore

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

      Se abrirá el cuadro de diálogo Crear servicio de metastore.

    3. Selecciona Dataproc Metastore 2.

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

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

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

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

    El nuevo servicio de metastore aparece en la página Dataproc Metastore. El estado muestra Creando hasta que el servicio esté listo para usarse. Cuando esté listo, el estado cambiará a Activo. El aprovisionamiento del servicio puede tardar un par de minutos.

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

    La página Crear servicio.

    CLI de gcloud

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

    .

    REST

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

    Crear un clúster de Dataproc y conectarse a Dataproc Metastore

    A continuación, crea un clúster de Dataproc y conéctate a tu metastore desde el clúster. Después, el clúster usará el servicio de metastore como HMS. El clúster que crees aquí usará los ajustes predeterminados.

    Consola

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

      Ve a Clústeres de Dataproc.

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

      Se abre el cuadro de diálogo Crear un clúster, que ofrece 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, introduce example-cluster.

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

    6. En el resto de las opciones de Configurar clúster, usa los valores predeterminados.

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

    8. En la sección Dataproc Metastore, selecciona el servicio de metastore que has creado antes.

      Si has seguido este tutorial tal cual, se llama example-service.

    9. En el resto de las opciones de configuración del servicio, usa los valores predeterminados.

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

      El nuevo clúster aparece en la lista Clústeres. El estado del clúster muestra Provisioning hasta que el clúster esté listo para usarse. Cuando esté listo, el estado cambiará a Activo. El aprovisionamiento del clúster puede tardar un par de 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

    Sustituye PROJECT_ID por el ID del proyecto en el que has creado tu servicio Dataproc Metastore.

    REST

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

    Conectarse a Apache Hive con un clúster de Dataproc

    En los siguientes 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 e 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 el directorio principal del 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 SSH:

    1. Inicia Hive.

      hive
      
    2. Crea una base de datos llamada myDatabase.

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

      show databases;
      
    4. Usa la base de datos que has creado.

      use myDatabase;
      
    5. Crea una tabla llamada myTable.

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

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

      desc MyTable;
      

    Al ejecutar estos comandos, se muestra 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
    

    Limpieza

    Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en esta página, sigue estos pasos.

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. If the project that you plan to delete is attached to an organization, expand the Organization list in the Name column.
    3. In the project list, select the project that you want to delete, and then click Delete.
    4. In the dialog, type the project ID, and then click Shut down to delete the project.

    También puedes eliminar los recursos utilizados en este tutorial:

    1. Elimina el servicio Dataproc Metastore.

      Consola

      1. En la Google Cloud consola, 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 Eliminar.

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

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

        Tu servicio ya no aparece en la lista de servicios.

      CLI de gcloud

      Para eliminar 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 eliminar un servicio con el Explorador de APIs.

      Todas las eliminaciones se realizan correctamente de inmediato.

    2. Elimina el segmento de Cloud Storage del servicio Dataproc Metastore.

    3. Elimina el clúster de Dataproc que usaba el servicio Dataproc Metastore.

    Siguientes pasos