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:
- Importar metadatos y Exportar metadatos
Crear una copia de seguridad de un metastore Restaurar un metastore a partir de una copia de seguridad
Las funciones relacionadas con los metadatos (importación, exportación, copia de seguridad y restauración) solo se pueden usar con la versión principal, ya que los metadatos de backend de ambas versiones se comparten.
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:
-
Conceder control total sobre los recursos de Dataproc Metastore (
roles/metastore.editor
) -
Concede acceso completo a todos los recursos de Dataproc Metastore, incluida la administración de políticas de gestión de identidades y accesos (
roles/metastore.admin
)
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
En la Google Cloud consola, abre la página Dataproc Metastore:
En la parte superior de la página Dataproc Metastore, haz clic en el botón Crear.
Se abrirá la página Crear servicio.
En Configuración de la versión auxiliar, habilita las versiones auxiliares.
Haz clic en Añadir versión auxiliar.
Escribe un nombre para la versión auxiliar.
Selecciona una versión para tu versión auxiliar.
Opcional: Para aplicar una asignación a la versión auxiliar, haz clic en + Añadir anulaciones.
Haz clic en Listo.
Elige las configuraciones restantes de tu servicio según sea necesario.
Haz clic en Enviar.
CLI de gcloud
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.
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 CloudLOCATION
: 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
En la Google Cloud consola, abre la página Dataproc Metastore:
En la página Dataproc Metastore, haga clic en el nombre del servicio que quiera actualizar.
Se abrirá la página Detalles del servicio.
En la pestaña Configuración, haz clic en Editar.
Se abrirá la página Editar servicio.
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:
Para eliminar una versión auxiliar, haz clic en Eliminar.
Para añadir una versión auxiliar, haz clic en Añadir versión auxiliar.
Para aplicar una asignación de anulación a una versión auxiliar, haga clic en + Añadir anulaciones.
Haz clic en Enviar.
CLI de gcloud
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.
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.