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 solo extremo 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 comenzar
- Habilita Dataproc Metastore.
- Crea un servicio de Dataproc Metastore que use el extremo de gRPC.
- Opcional: Si usas una fuente de BigQuery para la federación, completa lo siguiente:
- Habilita la API de BigQuery en el proyecto que contiene la fuente de BigQuery.
- Habilita la API de Resource Manager.
- Opcional: Si usas un lake de Dataplex Universal Catalog como fuente para la federación (vista previa), completa los siguientes pasos:
- Habilita la API de Dataplex Universal Catalog en el proyecto que contiene un lake de Dataplex Universal Catalog como fuente.
Funciones requeridas
Para obtener los permisos que necesitas para crear un servicio de federación y adjuntar un clúster de Dataproc, según el principio de privilegio mínimo, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Para acceder al servicio de federación, haz lo siguiente:
Federation accessor (
roles/metastore.federationAccessor
) en la cuenta de usuario o la cuenta de servicio -
Para otorgar control total de todos los recursos de Dataproc Metastore, haz lo siguiente:
Editor de Dataproc Metastore (
roles/metastore.editor
) en la cuenta de usuario o la cuenta de servicio -
Para completar las operaciones de metadatos en un almacén de metadatos de Dataproc configurado con un servicio de federación, haz lo siguiente:
Propietario del almacén de metadatos (
metastore.metadataEditor
) en la cuenta de usuario o la cuenta de servicio -
Para crear un clúster de Dataproc, haz lo siguiente:
Trabajador de Dataproc (
roles/dataproc.worker
) en la cuenta de servicio de VM de Dataproc - (Opcional) Para acceder a los conjuntos de datos de BigQuery, haz lo siguiente: Usa un rol predefinido de BigQuery adecuado para tu caso de uso en la cuenta de usuario o la cuenta de servicio.
- (Opcional) Para acceder a los lakes de Dataplex Universal Catalog (Vista previa), haz lo siguiente: Usa un rol predefinido de Dataplex Universal Catalog adecuado para tu caso de uso en la cuenta de usuario o la cuenta de servicio.
Para obtener más información sobre cómo otorgar roles, consulta Administra 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, según el principio de privilegio mínimo. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear un servicio de federación y adjuntar un clúster de Dataproc, según el principio de privilegio mínimo:
-
Para crear un almacén de metadatos de Dataproc, haz lo siguiente:
metastore.services.create
en la cuenta de usuario o la cuenta de servicio -
Para enumerar, obtener, crear, actualizar y borrar 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 la cuenta de servicio -
Para completar las operaciones de metadatos en un Dataproc Metastore, 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 la cuenta de servicio -
(Opcional) Para agregar un servicio multirregional a la federación, haz lo siguiente:
metastore.services.get
en las cuentas de Dataproc Metastore -
(Opcional) Para acceder a los conjuntos de datos de BigQuery, se requiere
For more information, see BigQuery permissions
en la cuenta de usuario o la cuenta de servicio. -
(Opcional) Para acceder a los lakes de Dataplex Universal Catalog (Vista previa):
For more information, see Dataplex Universal Catalog permissions
en la cuenta de usuario o la cuenta de servicio
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Para obtener más información sobre los roles y permisos específicos de Dataproc Metastore, consulta Administra el acceso a Dataproc Metastore con Identity and Access Management.Crea un servicio de federación
En las siguientes instrucciones, se muestra cómo crear un servicio de federación y adjuntarlo a una fuente. Después de completar estos pasos, puedes 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.
Console
En la Google Cloud consola, abre la página Dataproc Metastore:
En el menú de navegación de Dataproc, haz clic en Federación.
Se abrirá la página de servicios de metastore federados.
En la barra de menú del metastore Federated, haz clic en Create.
Se abrirá la página Crear servicio de federación.
En el campo Nombre de la federación, ingresa un nombre único para tu servicio.
Para obtener más información, consulta Convención de asignación de 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 agregar una fuente a tu servicio de federación, haz clic en Agregar una fuente.
Puedes agregar una o más fuentes. La primera fuente que agregues a esta lista se establecerá automáticamente como tu metastore principal. Puedes actualizar el orden de las fuentes después de la creación.
En Tipo de fuente, selecciona tu fuente de federación.
Puedes elegir una instancia de Dataproc Metastore, un proyecto que contenga uno o más conjuntos de datos de BigQuery o un lake de Dataplex Universal Catalog (versión preliminar).
En el campo Fuente, ingresa la siguiente información:
Para un servicio de Dataproc Metastore
En el campo Proyecto seleccionado, haz clic en Explorar y selecciona el proyecto que contiene el Dataproc Metastore que deseas usar como fuente.
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 que sea mayor o igual que la de tu servicio de federación.
En el menú desplegable Servicio de Metastore, selecciona el Dataproc Metastore que deseas usar como fuente.
(Opcional) Selecciona la casilla de verificación Mostrar los servicios de Metastore fuera de mi región. En esta lista, se incluye el servicio de 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 en esta lista.
Para BigQuery. En el campo Proyecto seleccionado, haz clic en Explorar y selecciona el ID del proyecto que contiene el conjunto de datos de BigQuery.
Para Dataplex Universal Catalog (vista previa) En el campo Proyecto seleccionado, haz clic en Explorar y selecciona el ID del proyecto que contiene el lake de Dataplex Universal Catalog.
Haz clic en Listo.
Haz clic en Enviar para crear y, luego, iniciar el servicio.
Ahora puedes adjuntar tu servicio de federación a un clúster de Dataproc.
gcloud CLI
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
Reemplaza lo siguiente:
FEDERATION
: Es el nombre de tu servicio de federación de Dataproc Metastore.LOCATION
: Es la Google Cloud región en la que se creará la federación.RANK
: Es un número de clasificación para cada uno de tus almacenes de metadatos 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 clasificación más baja. Por ejemplo, se consulta un almacén de metadatos de backend con un rango de1
antes que un almacén de metadatos 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
: Es el recurso relativo de cada almacén de metadatos de backend en el siguiente formato:METASTORE_TYPE:METASTORE_NAME
. Para los servicios de Dataproc Metastore, usadpms:SERVICE_ID
. Puedes encontrar el archivoSERVICE_ID
en la siguiente ubicación:projects/<project>/locations/<location>/services/<service-id>
.HIVE_VERSION
: Es la versión de Hive Metastore (3.1.2 o 2.3.6).
Actualiza un servicio de federación
En las siguientes instrucciones, se muestra cómo actualizar un servicio de federación. Puedes completar las siguientes tareas:
- Agrega una fuente a un servicio de federación.
- Quita una fuente de un servicio de federación.
- Cambia el orden de las fuentes incluidas en un servicio de federación.
Borra un servicio de federación de forma permanente. Después de borrar un servicio, se liberan todos sus recursos.
Console
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, haz clic en Federación.
Se abrirá la página de servicios de metastore federados.
En la página de servicios de metastore federados, haz clic en el nombre del servicio que deseas 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 deseas actualizar.
Para actualizar el servicio, haz clic en Enviar.
gcloud CLI
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
: Es el nombre de tu servicio de federación de Dataproc Metastore.LOCATION
: Es la Google Cloud región en la que se creará la federación.RANK
: Es un número de clasificación para cada uno de tus almacenes de metadatos 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 clasificación más baja. Por ejemplo, se consulta un almacén de metadatos de backend con un rango de1
antes que un almacén de metadatos 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
: Es el recurso relativo de cada almacén de metadatos de backend en el siguiente formato:METASTORE_TYPE:METASTORE_NAME
. Para los servicios de Dataproc Metastore, usadpms:SERVICE_ID
. Puedes encontrar el archivoSERVICE_ID
en la siguiente ubicación:projects/<project>/locations/<location>/services/<service-id>
.HIVE_VERSION
: Es la versión de Hive Metastore (3.1.2 o 2.3.6).
Cómo adjuntar 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 extremo de servicio de federación como su almacén de metadatos.
Antes de comenzar con estas instrucciones, completa todos los pasos que se indican en Antes de comenzar y crea un servicio de federación.
gcloud CLI
Para crear un clúster de Dataproc y adjuntar un extremo 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"
Reemplaza lo siguiente:
CLUSTER_NAME
: Es el nombre de tu nuevo clúster de Dataproc.PROJECT_ID
: Es el Google Cloud ID del proyecto en el que crearás el clúster de Dataproc.LOCATION
: Es la región de tu clúster de Dataproc.IMAGE_VERSION
: Es la versión de la imagen de Dataproc que deseas usar.Asegúrate de que la imagen de Dataproc que usas 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 con imágenes de Dataproc.
SERVICE_ACCOUNT
(opcional): Es 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
: Es el URI del extremo de tu servicio de federación.FEDERATION_VERSION
: Es la versión de Hive que usa tu servicio de federación.WAREHOUSE_DIR
: Es el directorio del almacén de tu Dataproc Metastore principal.