Versiones auxiliares

En esta página se explica cómo usar la función de versiones auxiliares con Dataproc Metastore.

Las versiones auxiliares te permiten conectar dos versiones diferentes de un almacén de metadatos de Hive a un único servicio de Dataproc Metastore. Esta configuración te permite admitir varios motores de procesamiento de datos que deben ejecutarse en diferentes versiones de Hive Metastore.

Por ejemplo, con las versiones auxiliares, puedes conectar varios clústeres de Dataproc al mismo servicio Dataproc Metastore. En esta configuración, un clúster puede ejecutar la versión 2.0 de Dataproc, mientras que el otro ejecuta la versión 1.5. El clúster de Dataproc 2.0 puede conectarse a un endpoint que exponga la versión 3.1.2 de Hive, mientras que el clúster de Dataproc 1.5 se conecta a un endpoint que exponga la versión 2.3.6 de Hive.

Cómo funcionan las versiones auxiliares

Cuando habilitas las versiones auxiliares, Dataproc Metastore expone un endpoint independiente para cada versión de Hive Metastore. Sin embargo, ambos endpoints siguen compartiendo la misma base de datos de metadatos.

Esta función no te permite usar diferentes conjuntos de metadatos con un solo servicio de Dataproc Metastore. En su lugar, te ofrece una forma de ampliar y mejorar la compatibilidad entre tus servicios.

Cuestiones importantes

General

  • Solo puedes crear una versión auxiliar por servicio de Dataproc Metastore.

  • La versión auxiliar debe configurarse para usar una versión de almacén de metadatos de Hive inferior a la de la versión principal.

  • La versión auxiliar mantiene un archivo de registro independiente de la versión principal. Para depurar problemas del metastore de Hive, puedes usar Cloud Logging.

Funciones admitidas

  • La versión auxiliar no admite las siguientes funciones:

  • Es posible que algunos métodos de Hive no sean compatibles entre la versión auxiliar y la principal. Esta compatibilidad depende de las versiones de Hive que utilices para las versiones principal y auxiliar, así como de los métodos compatibles entre las versiones de Hive.

  • La versión auxiliar no admite todas las funciones de una instancia principal de Dataproc Metastore. Por ejemplo, no se pueden insertar registros en una tabla transaccional de Hive con un cliente de Hive 2 que interactúe con una versión auxiliar 2.3.6. Sin embargo, esta operación se admite con un cliente de Hive 3 que interactúa con la versión principal 3.1.2.

    Si una función de una versión inferior de Hive está obsoleta en una versión superior de Hive, la versión auxiliar inferior correspondiente no admitirá la función obsoleta. Por ejemplo, Hive 2 admite índices, pero una versión auxiliar que ejecute Hive 2.3.6 no admitirá el índice si la versión principal ejecuta Hive 3.1.2.

  • No se pueden crear tablas transaccionales con la versión auxiliar ni insertar datos en tablas transaccionales de la versión auxiliar.

Propiedades compartidas entre versiones

Cuando creas una versión auxiliar, algunas propiedades se comparten y siguen siendo comunes entre la versión auxiliar y la principal. Otras propiedades no se comparten y son independientes en ambas versiones.

En la tabla siguiente se enumeran estas diferencias.

Propiedades Común Independiente
Endpoint
Sustituciones de configuración de Hive*
Configuración de Kerberos
Protocolo de endpoint (Thrift/gRPC)
Puerto de Thrift
Contenedor de Cloud Storage de artefactos
Nivel
Ventana de mantenimiento
Canal de lanzamiento
Configuración del cifrado
Tipo de base de datos
Interruptor de sincronización de Data Catalog
Métrica de recuento de solicitudes
Configuraciones de red

* Los ajustes de configuración de Hive siguen siendo independientes entre la versión auxiliar y la principal. Sin embargo, la versión auxiliar hace referencia a una lista combinada de las anulaciones (principal + auxiliar). En este caso, la configuración auxiliar tiene prioridad sobre la principal.

Antes de empezar

Roles obligatorios

Para obtener el permiso que necesitas para crear un metastore de Dataproc que use versiones auxiliares, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en tu proyecto, según el principio de privilegio mínimo:

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

Este rol predefinido contiene el permiso metastore.services.create , que es necesario para crear un metastore de Dataproc que use versiones auxiliares.

También puedes obtener este permiso 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 a Dataproc con IAM.

Crear una versión auxiliar para un servicio nuevo

En el siguiente ejemplo se muestra una versión abreviada de los pasos que debes seguir para habilitar las versiones auxiliares. Para obtener instrucciones detalladas sobre todo el proceso que debes seguir, consulta Crear un metastore de Dataproc.

Consola

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

    Abrir Dataproc Metastore

  2. En la parte superior de la página Dataproc Metastore, haz clic en el botón Crear.

    Se abrirá la página Crear servicio.

  3. En Configuración de la versión auxiliar, habilita las versiones auxiliares.

  4. Haz clic en Añadir versión auxiliar.

    1. Escribe un nombre para la versión auxiliar.

    2. Selecciona una versión para tu versión auxiliar.

    3. Opcional: Para aplicar una asignación a la versión auxiliar, haz clic en + Añadir anulaciones.

    4. Haz clic en Listo.

  5. Elige las configuraciones restantes de tu servicio según sea necesario.

  6. Haz clic en Enviar.

CLI de gcloud

  1. Para crear un servicio Dataproc Metastore con una versión auxiliar, ejecuta uno de los siguientes comandos gcloud metastore services create:

    gcloud metastore services create SERVICE \
        --location=LOCATION \
        --auxiliary-versions=AUXILIARY_VERSIONS, ...
    
    • SERVICE: el nombre de tu servicio de Dataproc Metastore.
    • LOCATION: la región en la que quieres crear tu servicio de Dataproc Metastore.
    • AUXILIARY_VERSIONS: lista separada por comas de las versiones de metastore de Hive que se van a implementar en tu versión auxiliar. Solo se admite una versión auxiliar. Utiliza el siguiente formato: "2.3.6".
    • AUXILIARY_VERSIONS_FROM_FILE: ruta a un archivo YAML que contiene la configuración de las versiones auxiliares. Para obtener más información y ver un ejemplo, consulta la documentación del SDK.
  2. Verifica que la creación se haya realizado correctamente.

curl

Para crear un servicio Dataproc Metastore con una versión auxiliar, usa el método create.

curl -X POST -s -i \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -d '{"network":"projects/PROJECT_ID/global/networks/default", "port": 9083, "hive_metastore_config": {"auxiliary_versions": {"aux-version1": {"version": "AUX_VERSION"} } } }' \
     -H "Content-Type:application/json" \
     https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services?service_id=SERVICE_ID

Haz los cambios siguientes:

  • SERVICE_ID: el nombre del nuevo servicio de Dataproc Metastore.
  • PROJECT_ID: el ID del proyecto en el que vas a crear el servicio Dataproc Metastore. Google Cloud
  • LOCATION: la región en la que reside tu Dataproc Metastore.
  • AUX_VERSIONS: lista separada por comas de las versiones de Hive Metastore que se van a implementar. Solo se admite una versión auxiliar.

Actualizar una versión auxiliar de un servicio

En las siguientes instrucciones se explica cómo actualizar un servicio de Dataproc Metastore que ya tenga versiones auxiliares.

Cuando ejecutas una operación de actualización, puedes completar las siguientes tareas:

  • Añade una nueva versión auxiliar.
  • Elimina una versión auxiliar.
  • Añadir o modificar anulaciones de una versión auxiliar.

Consola

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

    Abrir Dataproc Metastore

  2. En la página Dataproc Metastore, haga clic en el nombre del servicio que quiera actualizar.

    Se abrirá la página Detalles del servicio.

  3. En la pestaña Configuración, haz clic en Editar.

    Se abrirá la página Editar servicio.

  4. En la sección Configuración de la versión auxiliar, haz clic en el interruptor para habilitar o inhabilitar las versiones auxiliares.

    Puedes completar las siguientes tareas:

    1. Para eliminar una versión auxiliar, haz clic en Eliminar.

    2. Para añadir una versión auxiliar, haz clic en Añadir versión auxiliar.

    3. Para aplicar una asignación de anulación a una versión auxiliar, haga clic en + Añadir anulaciones.

  5. Haz clic en Enviar.

CLI de gcloud

  1. Para actualizar un servicio Dataproc Metastore que usa una versión auxiliar, ejecuta uno de los siguientes comandos gcloud metastore services update:

    gcloud metastore services update SERVICE \
       --location=LOCATION \
       --add-auxiliary-versions=AUXILIARY_VERSIONS, ...
    

    o

    gcloud metastore services update SERVICE \
       --location=LOCATION \
       --update-auxiliary-versions-from-file=AUXILIARY_VERSIONS_FROM_FILE
    

    Haz los cambios siguientes:

    • SERVICE: el nombre de tu servicio de Dataproc Metastore.
    • LOCATION: la región en la que reside tu Dataproc Metastore.
    • AUXILIARY_VERSIONS: lista separada por comas de versiones auxiliares de metastore de Hive que se van a implementar.
    • AUXILIARY_VERSIONS_FROM_FILE: ruta a un archivo YAML que contiene la configuración de las versiones auxiliares. Para obtener más información y ver un ejemplo, consulta la documentación del SDK.
  2. Verifica que la actualización se haya realizado correctamente.

curl

Para actualizar un servicio de Dataproc Metastore que usa una versión auxiliar, usa el método patch.

curl -X PATCH -s -i \
   -H "Authorization: Bearer $(gcloud auth print-access-token)" \
   -d '{"hive_metastore_config": {"auxiliary_versions": {"aux-version1": {"version": "AUX_VERSION} } } }' \
   -H "Content-Type:application/json" \
   https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE_ID?update_mask=hive_metastore_config.auxiliary_versions

Haz los cambios siguientes:

  • SERVICE_ID: el nombre de tu servicio de Dataproc Metastore.
  • PROJECT_ID: el ID del proyecto Google Cloud en el que vas a crear el clúster de servicio de Dataproc Metastore.
  • LOCATION: la región en la que se encuentra tu Dataproc Metastore.
  • AUX_VERSIONS: lista separada por comas de versiones auxiliares de metastore de Hive que se van a implementar.

Siguientes pasos