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 solo servicio de Dataproc Metastore. Esta configuración te permite admitir varios motores de procesamiento de datos que deben ejecutarse en diferentes versiones del almacén de metadatos de Hive.

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

Cómo funcionan las versiones auxiliares

Cuando habilitas las versiones auxiliares, Dataproc Metastore expone un extremo separado para cada versión del almacén de metadatos de Hive. Sin embargo, ambos extremos continúan 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 cambio, ofrece una forma de extender y mejorar la compatibilidad entre tus servicios.

Consideraciones

General

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

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

  • La versión auxiliar mantiene un archivo de registro independiente al de la versión primaria. Para depurar problemas del almacén de metadatos de Hive, puedes usar Cloud Logging.

Compatibilidad de características

  • 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 usas para las versiones primarias y auxiliares, y 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, la inserción de registros en una tabla transaccional de Hive no es compatible con un cliente de Hive 2 que interactúa con una versión auxiliar 2.3.6. Sin embargo, esta operación es compatible 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 anterior de Hive deja de estar disponible en una versión posterior de Hive, la versión auxiliar anterior no admitirá la función obsoleta. Por ejemplo, Hive 2 admite índices, pero una versión auxiliar que ejecuta Hive 2.3.6 no admitirá el índice si la versión principal ejecuta Hive 3.1.2.

  • Se impide crear tablas transaccionales con la versión auxiliar o 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. Las demás propiedades no se comparten y son independientes entre ambas versiones.

En la siguiente tabla, se enumeran estas diferencias.

Propiedades Common Separado
Extremo
Anulaciones de configuración de Hive*
Configuración de Kerberos
Protocolo de extremo (Thrift/gRPC)
Puerto de segunda mano
Artifacts del bucket de Cloud Storage
Nivel
Período de mantenimiento
Canal de versiones
Configuración de encriptación
Tipo de base de datos
Botón de activación de la sincronización de Data Catalog
Métrica de recuento de solicitudes
Configuraciones de red

* Las anulaciones de configuración de Hive permanecen separadas entre la versión auxiliar y la principal. Sin embargo, la versión auxiliar hace referencia a una lista combinada de las anulaciones (primaria y auxiliar). En este caso, la configuración auxiliar tiene prioridad sobre la configuración principal.

Antes de comenzar

Funciones requeridas

A fin de obtener el permiso necesario para crear un Dataproc Metastore que use versiones auxiliares, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto, según el principio de privilegio mínimo:

Si quieres obtener más información para otorgar funciones, consulta Administra el acceso.

Esta función predefinida contiene el permiso metastore.services.create, que se necesita para crear un Dataproc Metastore que use versiones auxiliares.

Es posible que también puedas obtener este permiso con funciones personalizadas o con otras funciones predefinidas.

Para obtener más información sobre las funciones y los permisos específicos de Dataproc Metastore, consulta Administra el acceso a Dataproc con la IAM.

Cómo crear una versión auxiliar para un servicio nuevo

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

Console

  1. En la consola de Google Cloud, abre la página de 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 Agregar versión auxiliar.

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

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

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

    4. Haz clic en Listo.

  5. Elige los parámetros de configuración restantes de tu servicio, según sea necesario.

  6. Haz clic en Enviar.

CLI de gcloud

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

    gcloud metastore services create SERVICE \
        --location=LOCATION \
        --auxiliary-versions=AUXILIARY_VERSIONS, ...
    
    • SERVICE: Es el nombre del servicio de Dataproc Metastore.
    • LOCATION: Es la región en la que deseas crear el servicio de Dataproc Metastore.
    • AUXILIARY_VERSIONS: Es una lista separada por comas de las versiones del almacén de metadatos de Hive que se implementarán en tu versión auxiliar. Solo se admite una versión auxiliar. Usa el siguiente formato: "2.3.6".
    • AUXILIARY_VERSIONS_FROM_FILE: Es una 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 de 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

Reemplaza lo siguiente:

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

Actualizar una versión auxiliar para un servicio existente

En las siguientes instrucciones, se muestra cómo actualizar un servicio existente de Dataproc Metastore que usa versiones auxiliares.

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

  • Agrega una nueva versión auxiliar.
  • Borra una versión auxiliar existente.
  • Agrega o modifica anulaciones de una versión auxiliar existente.

Console

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

    Abrir Dataproc Metastore

  2. En la página Dataproc Metastore, haz clic en el nombre del servicio que deseas 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 botón de activación para habilitar o inhabilitar las versiones auxiliares.

    Puedes realizar las siguientes tareas:

    1. Para borrar una versión auxiliar existente, haz clic en Borrar.

    2. Para agregar una nueva versión auxiliar, haz clic en Agregar versión auxiliar.

    3. Para aplicar una asignación de anulación a una versión auxiliar, haz clic en + Agregar anulaciones.

  5. Haz clic en Enviar.

CLI de gcloud

  1. Para actualizar un servicio de Dataproc Metastore que usa una versión auxiliar, ejecuta uno de los siguientes comandos de 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
    

    Reemplaza lo siguiente:

    • SERVICE: Es el nombre del servicio de Dataproc Metastore.
    • LOCATION: Es la región en la que reside tu Dataproc Metastore.
    • AUXILIARY_VERSIONS: Es una lista separada por comas de las versiones auxiliares del almacén de metadatos de Hive para implementar.
    • AUXILIARY_VERSIONS_FROM_FILE: Es una ruta de acceso 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

Reemplaza lo siguiente:

  • SERVICE_ID: Es el nombre del servicio de Dataproc Metastore.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud en el que creas el clúster del servicio de Dataproc Metastore.
  • LOCATION: Es la región en la que reside tu Dataproc Metastore.
  • AUX_VERSIONS: Es una lista separada por comas de las versiones auxiliares del almacén de metadatos de Hive para implementar.

¿Qué sigue?