Vincular un clúster de Dataproc o autogestionado

Después de crear un servicio de Dataproc Metastore, puedes adjuntar cualquiera de los siguientes servicios:

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

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:

  • 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.* en la cuenta de servicio de la VM de Dataproc

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:

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

  1. En la Google Cloud consola, abre la página Crear un clúster de Dataproc:

    Abre Crear un clúster.

  2. En el campo Nombre del clúster, introduce el nombre que quieras darle al clúster.

  3. 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.

  4. Haz clic en la pestaña Personalizar clúster.

  5. En la sección Configuración de red, selecciona la misma red en la que has creado tu servicio Dataproc Metastore.

  6. 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.

  7. Opcional: Si tu servicio Dataproc Metastore usa el protocolo de endpoint gRPC:

    1. Haz clic en la pestaña Gestionar seguridad.
    2. En la sección Acceso al proyecto, selecciona Habilita el permiso de Cloud Platform en este clúster.
  8. Configura las opciones de servicio restantes según sea necesario.

  9. 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, usa cloud-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:

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.

  1. Conéctate al clúster .*-m mediante SSH.
  2. 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:

  3. 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:

Siguientes pasos