En esta página se explica cómo crear un servicio de federación de metadatos para Dataproc Metastore. Un servicio de federación te permite acceder a los metadatos almacenados en varias fuentes desde un único endpoint de gRPC.
Para obtener más información sobre cómo funciona la federación y sus limitaciones, consulta Acerca de la federación de metadatos.
Antes de empezar
- Habilita Dataproc Metastore.
- Crea un servicio Dataproc Metastore que use el endpoint gRPC.
- Opcional: Si usas una fuente de BigQuery para la federación, haz lo siguiente:
- Habilita la API de BigQuery en el proyecto que contiene la fuente de BigQuery.
- Habilita la API Resource Manager.
- Opcional: Si usas un lago de Dataplex Universal Catalog como fuente de federación (vista preliminar), haz lo siguiente:
- Habilita la API de Dataplex en el proyecto que contenga un lago de Dataplex Universal Catalog como fuente.
Roles obligatorios
Para obtener los permisos que necesitas para crear un servicio de federación y adjuntar un clúster de Dataproc, siguiendo el principio del privilegio mínimo, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Para acceder al servicio de federación:
Acceso de federación (
roles/metastore.federationAccessor
) en la cuenta de usuario o en la cuenta de servicio -
Para conceder control total sobre todos los recursos de Dataproc Metastore, haz lo siguiente:
Editor de Dataproc Metastore (
roles/metastore.editor
) en la cuenta de usuario o de servicio -
Para completar las operaciones de metadatos en un servicio de federación configurado en Dataproc Metastore, haz lo siguiente:
Propietario del metastore (
metastore.metadataEditor
) en la cuenta de usuario o de servicio -
Para crear un clúster de Dataproc, sigue estos pasos:
Trabajador de Dataproc (
roles/dataproc.worker
) en la cuenta de servicio de la VM de Dataproc - Opcional: Para acceder a conjuntos de datos de BigQuery, haz lo siguiente: Usa un rol predefinido de BigQuery adecuado para tu caso práctico en la cuenta de usuario o en la cuenta de servicio.
- (Opcional) Para acceder a los lagos de Universal Catalog de Dataplex (vista previa): Usa un rol predefinido de Universal Catalog de Dataplex adecuado para tu caso práctico en la cuenta de usuario o en la cuenta de servicio.
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 servicio de federación y adjuntar un clúster de Dataproc, siguiendo el principio de privilegio mínimo. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para crear un servicio de federación y adjuntar un clúster de Dataproc, se necesitan los siguientes permisos, según el principio de mínimos accesos:
-
Para crear un metastore de Dataproc, haz lo siguiente:
metastore.services.create
en la cuenta de usuario o en la cuenta de servicio -
Para enumerar, obtener, crear, actualizar y eliminar un servicio de federación:
metastore.federations.create, metastore.federations.update, metastore.federations.delete, metastore.federations.get metastore.federations.list
en la cuenta de usuario o en la cuenta de servicio -
Para completar las operaciones de metadatos en un almacén de metadatos de Dataproc, haz lo siguiente:
metastore.services.get, metastore.services.use, metastore.databases.create, metastore.databases.update, metastore.databases.deletemetastore.databases.get,metastore.databases.list, metastore.databases.getIamPolicy, metastore.tables.create, metastore.tables.update, metastore.tables.delete, metastore.tables.get, metastore.tables.list, metastore.tables.getIamPolicy
en la cuenta de usuario o en la cuenta de servicio -
(Opcional) Para añadir un servicio multirregional a la federación, haz lo siguiente:
metastore.services.get
en las cuentas de Dataproc Metastore -
(Opcional) Para acceder a conjuntos de datos de BigQuery:
For more information, see BigQuery permissions
en la cuenta de usuario o en la cuenta de servicio -
(Opcional) Para acceder a los lagos de Universal Catalog de Dataplex (Vista previa):
For more information, see Dataplex Universal Catalog permissions
en la cuenta de usuario o en la cuenta de servicio
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 a Dataproc Metastore con Gestión de Identidades y Accesos.Crear un servicio de federación
En las siguientes instrucciones se explica cómo crear un servicio de federación y asociarlo a una fuente. Una vez que hayas completado estos pasos, podrás adjuntar tu servicio de federación a un clúster de Dataproc.
Para obtener más información sobre las fuentes de federación y sus limitaciones, consulta Fuentes de metadatos.
Consola
En la Google Cloud consola, abre la página Dataproc Metastore:
En el menú de navegación de Dataproc, haga clic en Federación.
Se abrirá la página de servicios de metastore Federated.
En la barra de menú del metastore Federated (Federado), haga clic en Create (Crear).
Se abrirá la página Crear servicio de federación.
En el campo Nombre de la federación, introduce un nombre único para tu servicio.
Para obtener más información, consulta el artículo Convenciones para asignar nombres de recursos.
Selecciona la Ubicación de los datos.
Asegúrate de crear tu servicio de federación en las mismas regiones que tus fuentes de Dataproc Metastore.
Selecciona la versión de Hive.
Para añadir una fuente a tu servicio de federación, haz clic en Añadir una fuente.
Puede añadir una o varias fuentes. La primera fuente que añadas a esta lista se definirá automáticamente como tu metastore principal. Puedes actualizar el orden de las fuentes después de crearlas.
En Tipo de origen, selecciona el origen de la federación.
Puedes elegir una instancia de Dataproc Metastore, un proyecto que contenga uno o varios conjuntos de datos de BigQuery o un lago de Universal Catalog de Dataplex (versión preliminar).
En el campo Fuente, introduce la siguiente información:
Para un servicio de Dataproc Metastore.
En el campo Proyecto seleccionado, haz clic en Buscar y selecciona el proyecto que contenga el metastore de Dataproc que quieras usar como origen.
Asegúrate de que tus fuentes de Dataproc Metastore usen una versión de Hive que sea compatible con tu servicio de federación. Tu metastore principal debe usar una versión de Hive igual o superior a la de tu servicio de federación.
En el menú desplegable Servicio de almacén de metadatos, selecciona el almacén de metadatos de Dataproc que quieras usar como fuente.
(Opcional) Marca la casilla Mostrar servicios del almacén de metadatos fuera de mi región. En esta lista se muestra el servicio Dataproc Metastore de otras regiones, incluidas las multirregiones.
Para habilitar la federación en un servicio de Dataproc Metastore multirregional, selecciona un servicio de Dataproc Metastore multirregional de esta lista.
Para BigQuery. En el campo Proyecto seleccionado, haga clic en Buscar y seleccione el ID del proyecto que contiene el conjunto de datos de BigQuery.
Dataplex Universal Catalog (vista previa). En el campo Proyecto seleccionado, haz clic en Examinar y selecciona el ID del proyecto que contiene el lago de Universal Catalog de Dataplex.
Haz clic en Listo.
Para crear e iniciar el servicio, haz clic en Enviar.
Ahora puede adjuntar su servicio de federación a un clúster de Dataproc.
CLI de gcloud
Para crear una federación con Dataproc Metastore, ejecuta el siguiente comando.
gcloud metastore federations create FEDERATION \ --location LOCATION \ --backends RANK=BACKEND_METASTORE \ --hive-metastore-version HIVE_VERSION
Haz los cambios siguientes:
FEDERATION
: nombre del servicio de federación de Dataproc Metastore.LOCATION
: la región en la que se va a crear la federación. Google CloudRANK
: un número de clasificación de cada uno de tus metastores de backend que se usa para resolver conflictos de nombres de bases de datos. El servicio de federación consulta primero los números con un rango inferior. Por ejemplo, se consulta un metastore de backend con un rango de1
antes que un metastore con un rango de2
. Este valor debe ser un número entero. Por ejemplo,--backends 1=first_backend_metastore, 2=second_backend_metastore
.BACKEND_METASTORE
: el recurso relativo de cada almacén de metadatos backend con el siguiente formato:METASTORE_TYPE:METASTORE_NAME
. En el caso de los servicios de Dataproc Metastore, usadpms:SERVICE_ID
. ElSERVICE_ID
se encuentra en la siguiente ubicación:projects/<project>/locations/<location>/services/<service-id>
.HIVE_VERSION
: la versión de Hive Metastore (3.1.2 o 2.3.6).
Actualizar un servicio de federación
A continuación, se explica cómo actualizar un servicio de federación. Puedes completar las siguientes tareas:
- Añade una fuente a un servicio de federación.
- Quita una fuente de un servicio de federación.
- Cambiar el orden de las fuentes incluidas en un servicio de federación.
Eliminar un servicio de federación de forma permanente. Cuando eliminas un servicio, se liberan todos sus recursos.
Consola
https://cloud.google.com/dataproc-metastore/docs/create-federation
En la Google Cloud consola, abre la página Dataproc Metastore:
En el menú de navegación de Dataproc, haga clic en Federación.
Se abrirá la página de servicios de metastore Federated.
En la página de servicios de metastore Federado, haga clic en el nombre del servicio que quiera actualizar.
Se abrirá la página Detalles del servicio.
En la barra de menú, haz clic en Editar.
Se abrirá la página Editar servicio.
Elige los valores que quieras actualizar.
Para actualizar el servicio, haz clic en Enviar.
CLI de gcloud
Para actualizar una federación con Dataproc Metastore, ejecuta el siguiente comando.
gcloud metastore federations update FEDERATATON \ --location=LOCATION \ --backends RANK1=BACKEND_METASTORE1,RANK2=BACKEND_METASTORE2
FEDERATION
: nombre del servicio de federación de Dataproc Metastore.LOCATION
: la región en la que se va a crear la federación. Google CloudRANK
: un número de clasificación de cada uno de tus metastores de backend que se usa para resolver conflictos de nombres de bases de datos. El servicio de federación consulta primero los números con un rango inferior. Por ejemplo, se consulta un metastore de backend con un rango de1
antes que un metastore con un rango de2
. Este valor debe ser un número entero. Por ejemplo,--backends 2=first_backend_metastore, 2=second_backend_metastore
.BACKEND_METASTORE
: el recurso relativo de cada almacén de metadatos backend con el siguiente formato:METASTORE_TYPE:METASTORE_NAME
. En el caso de los servicios de Dataproc Metastore, usadpms:SERVICE_ID
. ElSERVICE_ID
se encuentra en la siguiente ubicación:projects/<project>/locations/<location>/services/<service-id>
.HIVE_VERSION
: la versión de Hive Metastore (3.1.2 o 2.3.6).
Vincular un clúster de Dataproc a un servicio de federación
En las siguientes instrucciones se muestra cómo crear un clúster de Dataproc y adjuntar un endpoint de servicio de federación como metastore.
Antes de seguir estas instrucciones, completa todos los pasos que se indican en la sección Antes de empezar y crea un servicio de federación.
CLI de gcloud
Para crear un clúster de Dataproc y adjuntar un endpoint de federación, ejecuta el siguiente comando gcloud Dataproc clusters create
.
gcloud dataproc clusters create CLUSTER_NAME \ --region=LOCATION \ --project=PROJECT_ID \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --image-version=IMAGE_VERSION \ --service-account=SERVICE_ACCOUNT \ --optional-components=DOCKER \ --initialization-actions=gs://metastore-init-actions/metastore-grpc-proxy/metastore-grpc-proxy.sh \ --metadata="proxy-uri=FEDERATION_URI,hive-version=FEDERATION_VERSION" \ --properties="hive:hive.metastore.uris=thrift://localhost:9083,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR"
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre del nuevo clúster de Dataproc.PROJECT_ID
: el ID del proyecto en el que vas a crear el clúster de Dataproc. Google CloudLOCATION
: la región de tu clúster de Dataproc.IMAGE_VERSION
: la versión de imagen de Dataproc que quieras usar.Asegúrate de que la imagen de Dataproc que vas a usar en este comando sea compatible con la versión de Hive que se usa con tu servicio de federación. Para obtener más información, consulta la lista de versiones de imágenes de Dataproc.
SERVICE_ACCOUNT
opcional: la cuenta de servicio que usas para crear tu clúster de Dataproc. Si no se especifica, el clúster usa tu cuenta de servicio predeterminada de Compute Engine.FEDERATION_URI
: el URI del endpoint de tu servicio de federación.FEDERATION_VERSION
: la versión de Hive que usa tu servicio de federación.WAREHOUSE_DIR
: el directorio del almacén de tu Dataproc Metastore principal.