En esta página se explica cómo crear un servicio de Dataproc Metastore.
Después de crear tu servicio de Dataproc Metastore, puedes importar metadatos y conectarte a cualquiera de los siguientes servicios:
Una instancia autogestionada de Apache Hive, una instancia de Apache Spark o un clúster de Presto.
Después de conectar uno de estos servicios, este usará tu servicio de Dataproc Metastore como almacén de metadatos de Hive durante la ejecución de las consultas.
Antes de empezar
- Conocer las diferencias entre un servicio de Dataproc Metastore 1 y un servicio de Dataproc Metastore 2.
- Habilita Dataproc Metastore en tu proyecto.
- Conoce los requisitos de red específicos de tu proyecto.
Roles obligatorios
Para obtener el permiso que necesitas para crear un metastore de Dataproc, 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.
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 con IAM.Crear Dataproc Metastore con la configuración predeterminada
Si creas un servicio Dataproc Metastore con la configuración predeterminada, se configurará con un nivel Enterprise, un tamaño de instancia medio, la versión más reciente de Hive Metastore, un endpoint de Thrift y una ubicación de datos us-central1
.
Dataproc Metastore 2
En las siguientes instrucciones se explica cómo crear un metastore de Dataproc 2 con un endpoint de Thrift y otros ajustes predeterminados.
Consola
En la Google Cloud consola, ve a la página Dataproc Metastore.
En la barra de navegación, haz clic en + Crear.
Se abrirá el cuadro de diálogo Crear servicio de metastore.
Selecciona Dataproc Metastore 2.
En la sección Precios y capacidad, elija el tamaño de la instancia.
Para obtener más información, consulta los planes de precios y las configuraciones de escalado.
En el campo Nombre del servicio, introduce un nombre único para tu servicio.
Para obtener información sobre las convenciones de nomenclatura, consulta el artículo Convención de nomenclatura de recursos.
Selecciona la Ubicación de los datos.
Para obtener más información sobre cómo seleccionar la región adecuada, consulta Regiones y zonas disponibles y Punto de conexión regional.
En el resto de las opciones de configuración del servicio, usa los valores predeterminados.
Para crear e iniciar el servicio, haz clic en Enviar.
El nuevo servicio de metastore aparece en la página Dataproc Metastore. El estado muestra Creando hasta que el servicio esté listo para usarse. Cuando esté listo, el estado cambiará a Activo. El aprovisionamiento del servicio puede tardar unos minutos.
CLI de gcloud
Para crear un servicio de metastore de Dataproc Metastore 2 con los valores predeterminados proporcionados, ejecuta el siguiente comando gcloud metastore services create
:
gcloud metastore services create SERVICE \ --location=LOCATION \ --instance-size=INSTANCE_SIZE \ --scaling-factor=SCALING_FACTOR
Haz los cambios siguientes:
SERVICE
: nombre del nuevo servicio de Dataproc Metastore.LOCATION
: la Google Cloud región en la que quieres crear tu almacén de metadatos de Dataproc. También puedes definir una ubicación predeterminada.Para obtener información sobre las convenciones de nomenclatura, consulta el artículo Convención de nomenclatura de recursos.
INSTANCE_SIZE
: el tamaño de la instancia de tu almacén de metadatos multirregional de Dataproc. Por ejemplo,small
,medium
olarge
. Si especificas un valor paraINSTANCE_SIZE
, no especifiques un valor paraSCALING_FACTOR
.SCALING_FACTOR
: el factor de escalado de tu servicio Dataproc Metastore. Por ejemplo,0.1
. Si especifica un valor paraSCALING_FACTOR
, no especifique ningún valor paraINSTANCE_SIZE
.
REST
Sigue las instrucciones de la API para crear un servicio con el Explorador de APIs.
Dataproc Metastore 1
En las siguientes instrucciones se muestra cómo crear un metastore de Dataproc 1 con un endpoint de Thrift y otros ajustes predeterminados.
Consola
En la Google Cloud consola, ve a la página Dataproc Metastore.
En la barra de navegación, haz clic en + Crear.
Se abrirá el cuadro de diálogo Crear servicio de metastore.
Selecciona Dataproc Metastore 1.
En el campo Nombre del servicio, introduce un nombre único para tu servicio.
Para obtener información sobre las convenciones de nomenclatura, consulta el artículo Convención de nomenclatura de recursos.
Selecciona la Ubicación de los datos.
Para obtener más información sobre cómo seleccionar la región adecuada, consulta Regiones y zonas disponibles y Punto de conexión regional.
En el resto de las opciones de configuración del servicio, usa los valores predeterminados.
Para crear e iniciar el servicio, haz clic en Enviar.
El nuevo servicio de metastore aparece en la página Dataproc Metastore. El estado muestra Creando hasta que el servicio esté listo para usarse. Cuando esté listo, el estado cambiará a Activo. El aprovisionamiento del servicio puede tardar un par de minutos.
CLI de gcloud
Para crear un servicio de metastore básico con los valores predeterminados proporcionados, ejecuta el siguiente comando gcloud metastore services create
:
gcloud metastore services create SERVICE \ --location=LOCATION
Haz los cambios siguientes:
SERVICE
: nombre del nuevo servicio de Dataproc Metastore.LOCATION
: la Google Cloud región en la que quieres crear tu almacén de metadatos de Dataproc. También puedes definir una ubicación predeterminada.Para obtener información sobre las convenciones de nomenclatura, consulta el artículo Convención de nomenclatura de recursos.
REST
Sigue las instrucciones de la API para crear un servicio con el Explorador de APIs.
Crear Dataproc Metastore con ajustes avanzados
En el artículo sobre cómo crear un metastore de Dataproc con los ajustes avanzados, se explica cómo modificar configuraciones como las de red, los ajustes de escalado, los ajustes de endpoint, los ajustes de seguridad y las funciones opcionales.
Dataproc Metastore 2 o 1
En las siguientes instrucciones se explica cómo crear un servicio de Dataproc Metastore 2 o Dataproc Metastore 1 con ajustes avanzados.
Consola
Empezar
En la Google Cloud consola, abre la página Dataproc Metastore:
En el menú de navegación, haga clic en + Crear.
Se abrirá el cuadro de diálogo Crear servicio de metastore.
Selecciona la versión de Metastore que quieras usar: Dataproc Metastore 1 o Dataproc Metastore 2.
Información del servicio
Ejemplo de la página Crear servicio Opcional: para Dataproc Metastore 2 En la sección Precios y capacidad, elige el tamaño de la instancia.
Para obtener más información, consulta los planes de precios y las configuraciones de escalado.
En el campo Nombre del servicio, introduce un nombre único para tu servicio.
Para obtener información sobre las convenciones de nomenclatura, consulta el artículo Convención de nomenclatura de recursos.
Selecciona la Ubicación de los datos.
Para obtener más información sobre cómo seleccionar la región adecuada, consulta Regiones y zonas disponibles y Punto de conexión regional.
Selecciona la versión del almacén de metadatos de Hive.
Si no se modifica este valor, tu servicio usará la versión compatible más reciente de Hive (actualmente, la versión
3.1.2
).Para obtener más información sobre cómo seleccionar la versión correcta, consulta la política de versiones.
Selecciona el canal de lanzamiento.
Si no se modifica este valor, tu metastore usará el valor
Stable
. Para obtener más información, consulta Canal de lanzamiento.Introduce el Puerto TCP.
El puerto TCP al que se conecta tu endpoint de Thrift. Si no se modifica este valor, se usa el número de puerto
9083
. Si cambia su endpoint a gRPC, este valor cambiará automáticamente a443
y no se podrá modificar.(Opcional) Para Dataproc Metastore 1 Selecciona el Nivel de servicio.
El nivel de servicio influye en la capacidad de tu servicio. Para obtener más información, consulta Nivel de servicio.
Protocolo de endpoint
Opcional: Elige un protocolo de endpoint.
La opción seleccionada de forma predeterminada es Apache Thrift. Para obtener más información sobre los diferentes endpoints, consulta Elegir el protocolo de endpoint.
Configuración de red
Selecciona una configuración de red.
De forma predeterminada, tu servicio solo se expone en una red de VPC y usa la red
default
. La reddefault
solo permite que tu servicio se conecte a otros servicios del mismo proyecto.Cambia la configuración de red predeterminada para completar las siguientes acciones:
- Conecta tu servicio de Dataproc Metastore a servicios de Dataproc Metastore de otros proyectos.
- Usa tu servicio de Dataproc Metastore con otrosGoogle Cloud servicios, como el clúster de Dataproc.
Opcional: Haz clic en Usar red de VPC compartida e introduce el ID del proyecto y el nombre de la red de VPC.
Opcional: Haz clic en Hacer que los servicios sean accesibles en varias subredes de VPC y selecciona las subredes. Puedes especificar hasta cinco subredes.
Haz clic en Listo.
Integración de metadatos
Opcional: Habilita la sincronización de Data Catalog.
Para obtener más información, consulta Sincronización de Dataproc Metastore a Data Catalog.
Ventana de mantenimiento
Opcional: Selecciona el Día de la semana y la Hora del día de la ventana de mantenimiento.
Para obtener más información, consulta el artículo sobre ventanas de mantenimiento.
Seguridad
Opcional: Habilita Kerberos.
- Para habilitar Kerberos, haz clic en el interruptor.
- Selecciona o introduce el ID del recurso secreto.
- Puedes usar la versión más reciente del secreto o seleccionar una anterior.
Introduce el principal de Kerberos.
Es la cuenta principal asignada a este servicio de Dataproc Metastore.
Ve al archivo krb5 config.
Opcional: Elige un tipo de cifrado.
La opción seleccionada de forma predeterminada es Google-managed encryption key.
Para seleccionar una clave gestionada por el cliente, haz clic en Usar una clave de cifrado gestionada por el cliente (CMEK).
Para obtener más información, consulta el artículo Usar claves de cifrado gestionadas por el cliente.
Sustituciones de configuración de metastore
Opcional: Para aplicar una asignación a Hive Metastore, haz clic en + Añadir anulaciones.
Configuración de la versión auxiliar
Opcional: Para añadir una configuración de versión auxiliar, haz clic en Habilitar.
Para obtener más información, consulta Versiones auxiliares.
Tipo de base de datos
Opcional: Elige un tipo de base de datos.
En Tipo de base de datos, selecciona MySQL o Spanner. MySQL es el tipo de base de datos predeterminado.
Para obtener más información sobre cómo elegir un tipo de base de datos específico, consulta Tipos de bases de datos.
Etiquetas
- Opcional: Para añadir o quitar etiquetas opcionales que describan los metadatos, haz clic en + Añadir etiquetas.
Iniciar el servicio
Para crear e iniciar el servicio, haz clic en Enviar.
El nuevo servicio de metastore aparece en la página Dataproc Metastore. El estado muestra Creando hasta que el servicio esté listo para usarse. Cuando esté listo, el estado cambiará a Activo. El aprovisionamiento del servicio puede tardar unos minutos.
CLI de gcloud
Para crear un metastore, ejecuta el siguiente comando
gcloud metastore services create
:gcloud metastore services create SERVICE \ --location=LOCATION \ --instance-size=INSTANCE_SIZE \ --scaling-factor=SCALING_FACTOR \ --port=PORT \ --tier=TIER \ --endpoint-protocol=ENDPOINT_PROTOCOL \ --database-type=DATABASE_TYPE \ --hive-metastore-version=HIVE_METASTORE_VERSION \ --data-catalog-sync=DATA_CATALOG_SYNC \ --release-channel=RELEASE_CHANNEL \ --hive-metastore-configs=METADATA_OVERRIDE \ --labels=LABELS \ --auxiliary-versions=AUXILIARY_VERSION \ --network=NETWORK \ --consumer-subnetworks="projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET1, projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET2" \ --kerberos-principal=KERBEROS_PRINCIPAL \ --krb5-config=KRB5_CONFIG \ --keytab=CLOUD_SECRET \ --encryption-kms-key=KMS_KEY
Haz los cambios siguientes:
Configuración del servicio:
SERVICE
: nombre del nuevo servicio de Dataproc Metastore.LOCATION
: la Google Cloud región en la que quieres crear tu almacén de metadatos de Dataproc. También puedes definir una ubicación predeterminada.PORT
: opcional. Puerto TCP que usa tu endpoint de Thrift. Si no se define, se usará el puerto9083
. Si eliges usar un endpoint gRPC, el número de puerto cambiará automáticamente a443
.TIER
: opcional para Dataproc Metastore 1: el nivel de servicio de tu nuevo servicio. Si no se define, se usa el valorDeveloper
.ENDPOINT_PROTOCOL
: Opcional: elija el protocolo de endpoint de su servicio.DATABASE_TYPE
: Opcional: Elige el tipo de base de datos de tu servicio. Para obtener más información sobre cómo elegir un tipo de base de datos específico, consulta Tipos de bases de datos.DATA_CATALOG_SYNC
: Opcional: habilita la función Sincronización de Data Catalog.HIVE_METASTORE_VERSION
: opcional. Versión de Hive Metastore que quieres usar con tu servicio. Por ejemplo,3.1.2
. Si no se define, se usará la versión más reciente de Hive.RELEASE_CHANNEL
: Opcional: el canal de lanzamiento del servicio. Si no se define, se usa el valorStable
.METADATA_OVERRIDE
: Opcional: las configuraciones de sustitución de metastore de Hive que quieras aplicar a tu servicio. Usa una lista separada por comas con el siguiente formato:k1=v1,k2=v2,k3=v3
.LABELS
: opcional: pares clave-valor para añadir metadatos adicionales a tu servicio. Usa una lista separada por comas con el siguiente formato:k1=v1,k2=v2,k3=v3
. Dataproc MetastoreAUXILIARY_VERSION
: opcional: habilita versiones auxiliares. Para obtener más información, consulta Versiones auxiliares.
Configuración de escalado:
INSTANCE_SIZE
: opcional para Dataproc Metastore 2: el tamaño de instancia de tu almacén de metadatos multirregional de Dataproc. Por ejemplo,small
,medium
olarge
. Si especifica un valor paraINSTANCE_SIZE
, no especifique ningún valor paraSCALING_FACTOR
.SCALING_FACTOR
: opcional para Dataproc Metastore 2: el factor de escalado de tu servicio Dataproc Metastore. Por ejemplo,0.1
. Si especificas un valor paraSCALING_FACTOR
, no especifiques ningún valor paraINSTANCE_SIZE
.
Configuración de red:
NETWORK
: nombre de la red de VPC a la que te vas a conectar con tu servicio. Si no se define, se usa el valordefault
.Si usas una red de VPC que pertenece a un proyecto distinto del de tu servicio, debes proporcionar el nombre de recurso relativo completo. Por ejemplo,
projects/HOST_PROJECT/global/networks/NETWORK_ID
.SUBNET1
,SUBNET2
: Opcional: lista de subredes que pueden acceder a tu servicio. Puede usar el ID, la URL completa o el nombre relativo de la subred. Puedes especificar hasta 5 subredes.
Ajustes de Kerberos:
KERBEROS_PRINCIPAL
: Opcional: un principal de Kerberos que exista tanto en el archivo keytab como en el KDC. Un principal típico tiene el formato "primary/instance@REALM", pero no hay un formato exacto.KRB5_CONFIG
: opcional. El archivo krb5.config especifica el KDC y la información del dominio de Kerberos, que incluye las ubicaciones de los KDCs y los valores predeterminados del dominio y las aplicaciones de Kerberos.CLOUD_SECRET
: opcional. Nombre de recurso relativo de una versión de secreto de Secret Manager.KMS_KEY
: opcional. Hace referencia al ID del recurso de clave.
Verifica que la creación se haya realizado correctamente.
REST
Sigue las instrucciones de la API para crear un servicio con el Explorador de APIs.
Definir una anulación de configuración de Hive Metastore para Dataproc Metastore
Si el directorio de almacén de Apache Hive está en Cloud Storage, debes definir una sustitución de configuración de metastore. Esta anulación define tu almacén de datos personalizado como el directorio predeterminado del almacén de tu servicio Dataproc Metastore.
Antes de definir esta anulación, asegúrate de que tu servicio Dataproc Metastore tenga permisos de lectura y escritura de objetos para acceder al directorio del almacén. Para obtener más información, consulta el artículo Directorio del almacén de Hive.
En las siguientes instrucciones se muestra cómo definir una anulación de configuración de Hive Metastore para un nuevo servicio de Dataproc Metastore.
Consola
En la Google Cloud consola, abre la página Dataproc Metastore:
En la barra de navegación, haz clic en + Crear.
En Metastore config overrides, introduce los siguientes valores:
- Clave:
hive.metastore.warehouse.dir
. - Valor: la ubicación de Cloud Storage del directorio de tu almacén.
Por ejemplo:
gs://my-bucket/path/to/location
.
- Clave:
Configura las opciones de servicio restantes según sea necesario o usa los valores predeterminados proporcionados.
Haz clic en Enviar.
Vuelve a la página Dataproc Metastore y comprueba que el servicio se ha creado correctamente.
CLI de gcloud
Para crear un servicio de Dataproc Metastore con una sustitución de Hive, ejecuta el siguiente comando
gcloud metastore services create
:gcloud metastore services create SERVICE \ --location=LOCATION \ --hive-metastore-configs="hive.metastore.warehouse.dir=CUSTOMER_DIR"
Haz los cambios siguientes:
SERVICE
: nombre del nuevo servicio de Dataproc Metastore.LOCATION
: la Google Cloud región en la que quieres crear tu almacén de metadatos de Dataproc. También puedes definir una ubicación predeterminada.CUSTOMER_DIR
: la ubicación de Cloud Storage del directorio de tu almacén. Por ejemplo:gs://my-bucket/path/to/location
.
Verifica que la creación se haya realizado correctamente.
Crear un metastore de Dataproc con autoescalado
Dataproc Metastore 2 admite el autoescalado. Si activas el autoescalado, puedes definir un factor de escala mínimo y un factor de escala máximo. Una vez configurado, el servicio aumenta o disminuye automáticamente el factor de escalado necesario para ejecutar las cargas de trabajo.
Consideraciones sobre el autoescalado
- El autoescalado y los factores de escala son opciones mutuamente excluyentes. Por ejemplo, si activas el autoescalado, no puedes definir manualmente un factor de escalado ni un tamaño.
- El autoescalado solo está disponible para las instancias de Dataproc Metastore de una sola región.
- Cuando el autoescalado está habilitado, se borran los ajustes de los factores de escalado.
- Cuando el ajuste de escala automático está inhabilitado:
- Se borran los ajustes de autoescalado.
- El factor de escalado se define en el último
autoscaling_factor
que se configuró en el servicio.
- Los factores de autoescalado mínimo y máximo son opcionales. Si no se definen, los valores predeterminados son
0.1
y6
, respectivamente.
Elige una de las siguientes pestañas para saber cómo crear un servicio de Dataproc Metastore 2 con el escalado automático habilitado.
Consola
En la Google Cloud consola, ve a la página Dataproc Metastore.
En la barra de navegación, haz clic en + Crear.
Se abrirá el cuadro de diálogo Crear servicio de metastore.
Selecciona Dataproc Metastore 2.
En la sección Precios y capacidad, selecciona Enterprise - Single region (Enterprise - Una sola región).
En Tamaño de la instancia, haz clic en Habilitar escalado automático.
En Tamaño de instancia, usa el control deslizante para elegir un tamaño de instancia mínimo y máximo.
Para crear e iniciar el servicio, haz clic en Enviar.
El nuevo servicio de metastore aparece en la página Dataproc Metastore. El estado muestra Creando hasta que el servicio esté listo para usarse. Cuando esté listo, el estado cambiará a Activo. El aprovisionamiento del servicio puede tardar unos minutos.
REST
curl -X POST -s -i -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-d '{"scaling_config":{"autoscaling_config":{"autoscaling_enabled": true,"limit_config":{"max_scaling_factor":MAX_SCALING_FACTOR,"min_scaling_factor": MIN_SCALING_FACTOR}}}}' \
-H "Content-Type:application/json" \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/services?service_id=SERVICE_ID
Haz los cambios siguientes:
MIN_INSTANCES
Opcional: El número mínimo de instancias que se va a usar en la configuración de autoescalado. Si no se especifican estos valores, se usará el valor predeterminado0.1
.MAX_INSTANCES
Opcional: número máximo de instancias que se va a usar en la configuración de autoescalado. Si no se especifican estos valores, se usará el valor predeterminado6
.
Crear un servicio de Dataproc Metastore multirregional
Para crear un almacén de metadatos multirregional de Dataproc, consulta Configurar un servicio de almacén de metadatos multirregional de Dataproc.
Crear un servicio de Dataproc Metastore mediante una VPC compartida
Una VPC compartida te permite conectar recursos de Dataproc Metastore de varios proyectos a una red de VPC común.
Para crear un servicio de Dataproc Metastore configurado con una VPC compartida, consulta Crear un servicio con ajustes avanzados.
Cuestiones importantes
Las redes de VPC no son relevantes para los servicios de Dataproc Metastore configurados con el protocolo de endpoint gRPC.
En el caso de los servicios de Dataproc Metastore configurados con el protocolo de endpoint Thrift, asegúrate de que el servicio de Dataproc Metastore y el clúster de Dataproc al que está asociado usen la misma red de VPC compartida.
En los servicios de Dataproc Metastore configurados con el protocolo de endpoint Thrift y Private Service Connect, asegúrate de usar subredes de la red de VPC compartida.
Roles de IAM necesarios para las redes de VPC compartidas
Para crear un servicio de Dataproc Metastore con una VPC accesible en una red que pertenezca a otro proyecto, debes conceder roles/metastore.serviceAgent
al agente de servicio de Dataproc Metastore (service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com
) del proyecto de servicio en la política de gestión de identidades y accesos del proyecto de red.
gcloud projects add-iam-policy-binding NETWORK_PROJECT_ID \
--role "roles/metastore.serviceAgent" \
--member "serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com"
Solucionar problemas frecuentes
Estos son algunos de los problemas habituales:
Restringir el emparejamiento de VPCs. Antes de crear un metastore, no definas una restricción de política de organización para limitar el peering de VPCs, ya que, de lo contrario, se producirá un error al crear el metastore. Para obtener más información sobre cómo definir las configuraciones de VPC correctas, consulta el artículo La creación de servicios falla debido a una restricción para limitar el emparejamiento de VPC.
Problemas con las redes de VPC. Al crear un almacén de metadatos, es posible que la red de VPC que estés usando se quede sin direcciones RFC 1918 disponibles, que son necesarias para los servicios de Dataproc Metastore. Para obtener más información sobre cómo solucionar este problema, consulta el artículo Se ha agotado el intervalo de IPs asignado.