Después de crear un servicio de Dataproc Metastore, puedes adjuntar cualquiera de los siguientes servicios:
- Un clúster de Dataproc.
- Una instancia de Apache Hive autogestionada, una instancia de Apache Spark o un clúster de Presto.
Después de conectar uno de estos servicios, usará tu servicio de Dataproc Metastore como almacén de metadatos de Hive durante la ejecución de la consulta.
Antes de empezar
- Habilita Dataproc Metastore en tu proyecto.
- Crea un servicio de Dataproc Metastore.
- Conoce los requisitos de red específicos de tu proyecto.
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 control total sobre los recursos de Dataproc Metastore, haz lo siguiente:
-
Editor de Dataproc Metastore (
roles/metastore.editor
) en la cuenta de usuario o en la cuenta de servicio -
Administrador de Dataproc Metastore (
roles/metastore.admin
) en la cuenta de usuario o de servicio
-
Editor de Dataproc Metastore (
-
Para crear un clúster de Dataproc, sigue estos pasos:
(
roles/dataproc.worker
) en la cuenta de servicio de VM de Dataproc -
Para conceder permisos de lectura y escritura al directorio del almacén de Hive, haz lo siguiente:
(
roles/storage.objectAdmin
) en la cuenta de servicio de la VM de Dataproc
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 metastore de Dataproc, haz lo siguiente:
metastore.services.create
en la cuenta de usuario o en la cuenta de servicio -
Para crear un clúster de Dataproc, haz lo siguiente:
dataproc.clusters.create
en la cuenta de usuario o en la cuenta de servicio -
Para acceder al directorio del almacén de Hive, haz lo siguiente:
orgpolicy.policy.get1
,resourcemanager.projects.get
,resourcemanager.projects.list
,storage.objects.*
,storage.multipartUploads.*
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 Gestionar el acceso con IAM.Agrupaciones de Dataproc
Dataproc es un servicio Apache Spark y Apache Hadoop gestionado que te permite aprovechar las herramientas de datos de código abierto para el procesamiento por lotes, las consultas, el streaming y el aprendizaje automático.
Cuestiones importantes
Antes de crear y adjuntar un clúster de Dataproc, comprueba qué protocolo de endpoint está usando tu servicio de Dataproc Metastore. Este protocolo define cómo acceden los clientes de Hive Metastore a los metadatos almacenados en tu Dataproc Metastore. Esta elección también puede afectar a las funciones que puedes integrar y usar con tu servicio.
Apache Thrift
Si usas el protocolo de endpoint Apache Thrift, ten en cuenta los siguientes requisitos de red:
De forma predeterminada, debes crear tu clúster de Dataproc y tu servicio de Dataproc Metastore en la misma red. Tu clúster de Dataproc también puede usar una subred de la red del servicio Dataproc Metastore.
Si tu clúster de Dataproc pertenece a un proyecto distinto de la red, debes configurar permisos de red compartida.
Si tu clúster de Dataproc pertenece a un proyecto distinto del servicio Dataproc Metastore, debes configurar permisos adicionales antes de crear un clúster de Dataproc.
gRPC
Si usas el protocolo de endpoint gRPC, ten en cuenta los siguientes requisitos de red:
Después de crear un metastore de Dataproc con el protocolo de endpoint gRPC, debes conceder roles de gestión de identidades y accesos adicionales.
Si usas la autenticación de clústeres personales de Dataproc, tu Dataproc Metastore debe usar el protocolo de endpoint gRPC.
Si tu clúster de Dataproc pertenece a un proyecto distinto del servicio Dataproc Metastore, debes configurar permisos adicionales antes de crear un clúster de Dataproc.
Crear un clúster y adjuntar un metastore de Dataproc
En las siguientes instrucciones se muestra cómo crear un clúster de Dataproc y conectarse a él desde un servicio de Dataproc Metastore. En estas instrucciones se da por sentado que ya has creado un servicio de Dataproc Metastore.
- Antes de crear el clúster de Dataproc, asegúrate de que la imagen de Dataproc que elijas sea compatible con la versión del almacén de metadatos de Hive que hayas seleccionado al crear tu Dataproc Metastore. Para obtener más información, consulta la lista de versiones de imágenes de Dataproc.
Para optimizar la conectividad de red, crea el clúster de Dataproc en la misma región que tu servicio de Dataproc Metastore.
Consola
En la Google Cloud consola, abre la página Crear un clúster de Dataproc:
En el campo Nombre del clúster, introduce el nombre que quieras darle al clúster.
En los menús Región y Zona, selecciona la misma región en la que has creado el servicio Dataproc Metastore. Puedes elegir cualquier zona.
Haz clic en la pestaña Personalizar clúster.
En la sección Configuración de red, selecciona la misma red en la que has creado tu servicio Dataproc Metastore.
En la sección Dataproc Metastore, seleccione el servicio de Dataproc Metastore que quiera adjuntar. Si aún no has creado ninguna, puedes seleccionar Crear nuevo servicio.
Opcional: Si tu servicio Dataproc Metastore usa el protocolo de endpoint gRPC:
- Haz clic en la pestaña Gestionar seguridad.
- En la sección Acceso al proyecto, selecciona Habilita el permiso de Cloud Platform en este clúster.
Configura las opciones de servicio restantes según sea necesario.
Para crear el clúster, haz clic en Crear.
El nuevo clúster aparece en la lista Clústeres. El estado del clúster será Aprovisionando hasta que esté listo para usarse. Cuando esté listo para usarse, el estado cambiará a En ejecución.
CLI de gcloud
Para crear un clúster y adjuntar un metastore de Dataproc, ejecuta el siguiente comando gcloud dataproc clusters create
:
gcloud dataproc clusters create CLUSTER_NAME \ --dataproc-metastore=projects/PROJECT_ID/locations/LOCATION/services/SERVICE \ --region=LOCATION \ --scopes=SCOPES
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre del nuevo clúster de Dataproc.PROJECT_ID
: el ID del proyecto en el que has creado el servicio Dataproc Metastore.LOCATION
: la misma región en la que has creado tu servicio de Dataproc Metastore.SERVICE
: el nombre del servicio de Dataproc Metastore que vas a asociar al clúster.SCOPES
: (Opcional) Si tu servicio Dataproc Metastore usa el protocolo de punto de conexión gRPC, usacloud-platform
.
REST
Sigue las instrucciones de la API para crear un clúster con el Explorador de APIs.
Vincular un clúster mediante las propiedades de clúster de Dataproc
También puedes asociar un clúster de Dataproc a un metastore de Dataproc mediante propiedades de Dataproc.
Entre estas propiedades se incluyen ENDPOINT_URI
y WAREHOUSE_DIR
de Dataproc Metastore.
Sigue estas instrucciones si tu servicio Dataproc Metastore usa Private Service Connect o si quieres adjuntar un clúster de Dataproc a la versión auxiliar de tu servicio Dataproc Metastore.
Hay dos formas de asociar un clúster de Dataproc mediante las propiedades ENDPOINT_URI
y WAREHOUSE_DIR
:
Opción 1: Al crear un clúster de Dataproc
Al crear un clúster de Dataproc, usa la marca de propiedades con la siguiente configuración de Hive.
gcloud dataproc clusters create CLUSTER_NAME \ --properties="hive:hive.metastore.uris=ENDPOINT_URI,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR/hive-warehouse"
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre del nuevo clúster de Dataproc.ENDPOINT_URI
: el URI del endpoint de tu servicio Dataproc Metastore.WAREHOUSE_DIR
: la ubicación de tu directorio de almacén de Hive.
Opción 2: Actualizar el archivo hive-site.xml
También puedes adjuntar un clúster de Dataproc modificando directamente el archivo hive-site.xml
del clúster.
- Conéctate al clúster
.*-m
mediante SSH. Abre el archivo
/etc/hive/conf/hive-site.xml
y modifica las siguientes líneas:<property> <name>hive.metastore.uris</name> <!-- Update this value. --> <value>ENDPOINT_URI</value> </property> <!-- Add this property entry. --> <property> <name>hive.metastore.warehouse.dir</name> <value>WAREHOUSE_DIR</value> </property>
Haz los cambios siguientes:
ENDPOINT_URI
: el URI del endpoint de tu servicio Dataproc Metastore.WAREHOUSE_DIR
: la ubicación de tu directorio de almacén de Hive.
Reinicia HiveServer2:
sudo systemctl restart hive-server2.service
Clústeres autogestionados
Un clúster autogestionado puede ser una instancia de Apache Hive, una instancia de Apache Spark o un clúster de Presto.
Vincular un clúster autogestionado
Defina los siguientes valores en el archivo de configuración del cliente:
hive.metastore.uris=ENDPOINT_URI
hive.metastore.warehouse.dir=WAREHOUSE_DIR
Haz los cambios siguientes:
ENDPOINT_URI
: el URI del endpoint de tu servicio Dataproc Metastore.WAREHOUSE_DIR
: la ubicación de tu directorio de almacén de Hive.
Siguientes pasos
- Guía de inicio rápido para desplegar Dataproc Metastore
- Información general sobre Dataproc Metastore
- Información general sobre Dataproc