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:
Antes de empezar
- 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.
-
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 theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enable
permission. Learn how to grant roles. -
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 theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enable
permission. Learn how to grant roles. -
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 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 (
en la cuenta de servicioroles/dataproc.worker
) En la Google Cloud consola, ve a la página Dataproc Metastore.
En el menú de navegación, haga clic en + Crear.
Se abrirá el cuadro de diálogo Crear servicio de metastore.
Selecciona Dataproc Metastore 2.
En el campo Nombre del servicio, introduce
example-service
.En el campo Ubicación de los datos, seleccione
us-central1
.Para el resto de las opciones de configuración del servicio, usa los valores predeterminados.
Para crear e iniciar el servicio, haz clic en Enviar.
En la Google Cloud consola, ve a la página Clústeres de Dataproc.
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.
En la fila Clúster en Compute Engine, selecciona Crear.
Se abrirá la página Crear un clúster de Dataproc en Compute Engine.
En el campo Nombre del clúster, introduce
example-cluster
.En los menús Región y Zona, selecciona
us-central1
.En el resto de las opciones de Configurar clúster, usa los valores predeterminados.
En el menú de navegación, haga clic en la pestaña Personalizar clúster (opcional).
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
.En el resto de las opciones de configuración del servicio, usa los valores predeterminados.
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.
- En la consola de Google Cloud , ve a la página Instancias de VM.
- En la lista de instancias de máquina virtual, haz clic en SSH junto a
example-cluster
. Inicia Hive.
hive
Crea una base de datos llamada
myDatabase
.create database myDatabase;
Muestra la base de datos que has creado.
show databases;
Usa la base de datos que has creado.
use myDatabase;
Crea una tabla llamada
myTable
.create table myTable(id int,name string);
Enumera las tablas de
myDatabase
.show tables;
Describe el esquema de la tabla que has creado.
desc MyTable;
- In the Google Cloud console, go to the Manage resources page.
- If the project that you plan to delete is attached to an organization, expand the Organization list in the Name column.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Elimina el servicio Dataproc Metastore.
Consola
En la Google Cloud consola, abre la página Dataproc Metastore:
En la lista de servicios, selecciona
example-service
.En la barra de navegación, haz clic en Eliminar.
Se abrirá el cuadro de diálogo Eliminar servicio.
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.
Elimina el segmento de Cloud Storage del servicio Dataproc Metastore.
Elimina el clúster de Dataproc que usaba el servicio Dataproc Metastore.
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 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:
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
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.
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
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.
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:
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.
También puedes eliminar los recursos utilizados en este tutorial: