En esta página se explica cómo configurar un servicio multirregional de Dataproc Metastore. Para obtener más información sobre cómo funcionan los servicios de Dataproc Metastore multirregionales, consulta Regiones de Dataproc Metastore.
Antes de empezar
- Habilita Dataproc Metastore en tu proyecto.
- Conocer los requisitos de red específicos de tu proyecto.
- Consulta información sobre las regiones de Dataproc Metastore y elige la que más te convenga.
Roles obligatorios
Para obtener el permiso que necesitas para crear un servicio de Dataproc Metastore multirregional, 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 servicio de Dataproc Metastore multirregional.
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.Acerca de los servicios de Dataproc Metastore multirregionales
Los servicios de Dataproc Metastore multirregionales almacenan tus datos en dos regiones diferentes y usan esas dos regiones para ejecutar tus cargas de trabajo. Por ejemplo, la multirregión nam7
contiene las regiones us-central1
y us-east4
.
Un servicio Dataproc Metastore multirregional replica los metadatos en dos regiones y expone los endpoints pertinentes para acceder a Hive Metastore. En el caso de gRPC, se expone un endpoint por región. En Thrift, se expone un endpoint por subred.
Un servicio Dataproc Metastore multirregional proporciona una configuración de clúster de alta disponibilidad (HA) activo-activo. Esta configuración significa que las cargas de trabajo pueden acceder a cualquiera de las regiones al ejecutar tareas. También proporciona un mecanismo de conmutación por error para tu servicio. Por ejemplo, si tu endpoint regional principal deja de funcionar, tus cargas de trabajo se dirigirán automáticamente a la región secundaria. De esta forma, evitarás que se interrumpan tus trabajos de Dataproc.
Cuestiones importantes
Las siguientes consideraciones se aplican a los servicios de Dataproc Metastore multirregionales.
Los servicios multirregionales solo admiten el tipo de base de datos Spanner. Consulta la lista de funciones admitidas antes de crear tu servicio multirregional.
Los servicios multirregionales solo admiten configuraciones de Dataproc Metastore 2.
Los servicios multirregionales crean segmentos de artefactos en una ubicación multirregional de Cloud Storage. Por ejemplo, los segmentos
Nam7
se crean en la ubicación multirregionalUS
.
Crear un servicio de Dataproc Metastore multirregional
Elige una de las siguientes pestañas para saber cómo crear un servicio multirregional con el protocolo de endpoint Thrift o gRPC, con un servicio Dataproc Metastore 2.
gRPC
Cuando creas un servicio multirregional que usa el protocolo de endpoint gRPC, no tienes que definir ningún ajuste de red específico. El protocolo gRPC gestiona el enrutamiento de la red.
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 Plus - Dual region (Enterprise Plus - Doble región).
En Protocolo de endpoint, selecciona gRPC.
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 multirregional de Dataproc Metastore, ejecuta el siguiente comando gcloud metastore services create
. Este comando crea la versión 3.1.2 de Dataproc Metastore.
gcloud metastore services create SERVICE \ --location=MULTI_REGION \ { --instance-size=INSTANCE_SIZE | --scaling-factor=SCALING_FACTOR } \ --endpoint-protocol=grpc
Haz los cambios siguientes:
SERVICE
: el nombre de tu servicio de Dataproc Metastore.MULTI_REGION
: la multirregión en la que vas a crear tu servicio de Dataproc Metastore.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
.
Ahorro
Cuando crees un servicio multirregional que use el protocolo de endpoint Thrift, debes definir los ajustes de subred adecuados. En este caso, por cada red de VPC que utilice, debe proporcionar al menos una subred de cada región.
Por ejemplo, para crear la multirregión nam7
, debes proporcionar las regiones us-central1
y us-east4
.
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 Plus - Dual region (Enterprise Plus - Dos regiones).
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.
En Protocolo de endpoint, selecciona Thrift.
En Network Config (Configuración de red), proporcione las subredes que forman la configuración multirregional que ha elegido.
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 multirregional de Dataproc Metastore, ejecuta el siguiente comando gcloud metastore services create
.
Este comando crea la versión 3.1.2 de Dataproc Metastore.
gcloud metastore services create SERVICE \ --location=MULTI_REGION \ --consumer-subnetworks="projects/PROJECT_ID/regions/LOCATION1/subnetworks/SUBNET1,projects/PROJECT_ID/regions/LOCATION2/subnetworks/SUBNET2" \ { --instance-size=INSTANCE_SIZE | --scaling-factor=SCALING_FACTOR } \ --endpoint-protocol=thrift
También puedes almacenar la configuración de tu red en un archivo, como se muestra en el siguiente comando.
gcloud metastore services create SERVICE \ --location=MULTI_REGION \ --network-config-from-file=NETWORK_CONFIG_FROM_FILE { --instance-size=INSTANCE_SIZE | --scaling-factor=SCALING_FACTOR } \ --endpoint-protocol=thrift
Haz los cambios siguientes:
SERVICE
: el nombre de tu servicio de Dataproc Metastore.MULTI_REGION
: la multirregión en la que vas a crear el servicio Dataproc Metastore.PROJECT_ID
: el ID del proyecto Google Cloud en el que vas a crear el servicio Dataproc Metastore.SUBNET1
SUBNET2
: lista de subredes que forman una configuración multirregional. Puede usar el ID, la URL completa o el nombre relativo de la subred. Puedes especificar hasta seis subredes.LOCATION1
,LOCATION2
: una lista de ubicaciones que forman una configuración multirregional. Puedes usar el ID de la ubicación. Por ejemplo, en una multirregiónnam7
, se usanus-central1
yus-east4
.NETWORK_CONFIG_FROM_FILE
: la ruta a un archivo YAML que contiene la configuración de red.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
Para saber cómo crear un servicio de Dataproc Metastore multirregional, sigue las instrucciones para crear un servicio con el explorador de APIs de Google.
Para configurar un servicio multirregional, proporcione la siguiente información en los objetos Network Config
.
"network_config": { "consumers": [ {"subnetwork": "projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET1"}, {"subnetwork": "projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET2"} ], "scaling_config": { "scaling_factor": SCALING_FACTOR } }
Haz los cambios siguientes:
PROJECT_ID
: el Google Cloud ID del proyecto del proyecto que contiene tu servicio de Dataproc Metastore.LOCATION
: la Google Cloud región en la que se encuentra tu servicio de Dataproc Metastore.SUBNET1
,SUBNET2
: lista de subredes que forman una configuración multirregional. Puede usar el ID, la URL completa o el nombre relativo de la subred. Puedes especificar hasta cinco subredes.SCALING_FACTOR
: el factor de escala que quieras usar en el servicio.
Conectar Dataproc Metastore a un clúster de Dataproc
Elige una de las siguientes pestañas para saber cómo conectar un servicio de Dataproc Metastore multirregional desde un clúster de Dataproc.
gRPC
Para conectar un clúster de Dataproc, elige la pestaña que corresponda a la versión de Dataproc Metastore que estés usando.
Dataproc Metastore 3.1.2
Crea las siguientes variables para tu clúster de Dataproc:
CLUSTER_NAME=CLUSTER_NAME PROJECT_ID=PROJECT_ID MULTI_REGION=MULTI_REGION DATAPROC_IMAGE_VERSION=DATAPROC_IMAGE_VERSION PROJECT=PROJECT SERVICE_ID=SERVICE_ID
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre de tu clúster de Dataproc.PROJECT_ID
: el Google Cloud proyecto que contiene tu clúster de Dataproc. Asegúrate de que la subred que vas a usar tiene los permisos adecuados para acceder a este proyecto.MULTI_REGION
: la Google Cloud multirregión en la que quieres crear tu clúster de Dataproc.DATAPROC_IMAGE_VERSION
: la versión de la imagen de Dataproc que estás usando con tu servicio Dataproc Metastore. Debes usar una versión de imagen2.0
o posterior.PROJECT
: el proyecto que contiene tu servicio Dataproc Metastore.SERVICE_ID
: el ID de servicio de tu servicio de Dataproc Metastore.
Para crear el clúster, ejecuta el siguiente comando
gcloud dataproc clusters create
.--enable-kerberos
es opcional. Incluye esta opción solo si usas Kerberos con tu clúster.gcloud dataproc clusters create ${CLUSTER_NAME} \ --project ${PROJECT_ID} \ --region ${MULTI_REGION} \ --image-version ${DATAPROC_IMAGE_VERSION} \ --scopes "https://www.googleapis.com/auth/cloud-platform" \ --dataproc-metastore projects/${PROJECT}/locations/${MULTI_REGION}/services/${SERVICE_ID} \ [ --enable-kerberos ]
Dataproc Metastore 2.3.6
Crea las siguientes variables para tu servicio Dataproc Metastore:
METASTORE_PROJECT=METASTORE_PROJECT METASTORE_ID=METASTORE_ID MULTI_REGION=MULTI_REGION SUBNET=SUBNET
Haz los cambios siguientes:
METASTORE_PROJECT
: el Google Cloud proyecto que contiene tu servicio Dataproc Metastore.METASTORE_ID
: el ID de servicio de tu servicio de Dataproc Metastore.MULTI_REGION
: la ubicación multirregional que quieras usar para tu servicio Dataproc Metastore.SUBNET
: una de las subredes que usas para tu servicio Dataproc Metastore. O cualquier subred de la red de VPC principal de las subredes que se utilicen en tu servicio.
Crea las siguientes variables para tu clúster de Dataproc:
CLUSTER_NAME=CLUSTER_NAME DATAPROC_PROJECT=DATAPROC_PROJECT DATAPROC_REGION=DATAPROC_REGION HIVE_VERSION=HIVE_VERSION IMAGE_VERSION=
r>IMAGE_VERSION Haz los cambios siguientes:
CLUSTER_NAME
: el nombre de tu clúster de Dataproc.DATAPROC_PROJECT
: el Google Cloud proyecto que contiene tu clúster de Dataproc. Asegúrate de que la subred que vas a usar tiene los permisos adecuados para acceder a este proyecto.DATAPROC_REGION
: la Google Cloud región en la que quieres crear tu clúster de Dataproc.HIVE_VERSION
: la versión de Hive que usa tu servicio Dataproc Metastore.IMAGE_VERSION
: la versión de la imagen de Dataproc que estás usando con tu servicio Dataproc Metastore.- Para la versión 2.0 de Hive Metastore, usa la versión de imagen
1.5
. - En el caso de la versión 3.1.2 de Hive Metastore, usa la versión de imagen
2.0
.
- Para la versión 2.0 de Hive Metastore, usa la versión de imagen
Recupera el directorio del almacén de datos de tu servicio Dataproc Metastore y guárdalo en una variable.
WAREHOUSE_DIR=$(gcloud metastore services describe "${METASTORE_ID}" --project "${METASTORE_PROJECT}" --location "${MULTI_REGION}" --format="get(hiveMetastoreConfig.configOverrides[hive.metastore.warehouse.dir])")
Crea un clúster de Dataproc configurado con un almacén de metadatos multirregional de Dataproc.
gcloud dataproc clusters create ${CLUSTER_NAME} \ --project "${DATAPROC_PROJECT}" \ --region ${DATAPROC_REGION} \ --scopes "https://www.googleapis.com/auth/cloud-platform" \ --subnet "${SUBNET}" \ --optional-components=DOCKER \ --image-version ${IMAGE_VERSION} \ --metadata "hive-version=${HIVE_VERSION},dpms-name=${DPMS_NAME}" \ --properties "hive:hive.metastore.uris=thrift://localhost:9083,hive:hive.metastore.warehouse.dir=${WAREHOUSE_DIR}" \ --initialization-actions gs://metastore-init-actions/mr-metastore-grpc-proxy/metastore-grpc-proxy.sh
Ahorro
Opción 1: Editar el archivo hive-site.xml
- Busca el URI del endpoint y el directorio del almacén de tu servicio Dataproc Metastore. Puedes elegir cualquiera de los endpoints expuestos.
- En la consola de Google Cloud , ve a la página Instancias de VM.
En la lista de instancias de máquinas virtuales, haz clic en SSH en la fila del nodo principal de Dataproc (
.*-m
).Se abrirá una ventana del navegador en el directorio principal del nodo.
Abre el archivo
/etc/hive/conf/hive-site.xml
.sudo vim /etc/hive/conf/hive-site.xml
Verá un resultado similar al siguiente:
<property> <name>hive.metastore.uris</name> <value>ENDPOINT_URI</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>WAREHOUSE_DIR</value> </property>
Haz los cambios siguientes:
ENDPOINT_URI
: el URI del endpoint de tu servicio Dataproc Metastore.WAREHOUSE_DIR
: la ubicación de tu directorio de almacén de Hive.
Reinicia HiveServer2:
sudo systemctl restart hive-server2.service
Opción 2: Usar la CLI de gcloud
Ejecuta el siguiente comando de la CLI de gcloud:gcloud dataproc clusters create
- Busca el URI del endpoint y el directorio del almacén de tu servicio Dataproc Metastore. Puedes elegir cualquiera de los endpoints expuestos.
gcloud dataproc clusters create CLUSTER_NAME \ --network NETWORK \ --project PROJECT_ID \ --scopes "https://www.googleapis.com/auth/cloud-platform" \ --image-version IMAGE_VERSION \ --properties "hive:hive.metastore.uris=ENDPOINT,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR"
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre de tu clúster de Dataproc.NETWORK
: el Google Cloud proyecto que contiene tu clúster de Dataproc. Asegúrate de que la subred que vas a usar tiene los permisos adecuados para acceder a este proyecto.PROJECT_ID
: la versión de Hive que usa tu servicio Dataproc Metastore.IMAGE_VERSION
: la versión de la imagen de Dataproc que estás usando con tu servicio Dataproc Metastore.- Para la versión 2.0 de Hive Metastore, usa la versión de imagen
1.5
. - En el caso de la versión 3.1.2 de Hive Metastore, usa la versión de imagen
2.0
.
- Para la versión 2.0 de Hive Metastore, usa la versión de imagen
ENDPOINT
: el endpoint de Thrift que usa tu Dataproc Metastore.WAREHOUSE_DIR
: el directorio del almacén de tu Dataproc Metastore.
Configuraciones de regiones personalizadas
Puedes configurar los servicios de Dataproc Metastore para que usen una configuración de región personalizada.
Una configuración de región personalizada permite que tu servicio ejecute cargas de trabajo desde dos regiones independientes. De esta forma, se proporciona redundancia entre regiones, lo que significa que las cargas de trabajo pueden acceder a cualquiera de las regiones al ejecutar trabajos. También proporciona un mecanismo de conmutación por error para tu servicio. Por ejemplo, si uno de los puntos de conexión regionales deja de funcionar, tus cargas de trabajo se dirigirán automáticamente a la otra región. De esta forma, evitarás que se interrumpan tus cargas de trabajo y tus tareas.
Las configuraciones de regiones personalizadas también te permiten controlar dónde almacenas los metadatos y dónde expones los endpoints de Hive Metastore. Esto puede mejorar el rendimiento al procesar cargas de trabajo.
Cuestiones importantes
Las siguientes consideraciones se aplican a los servicios de Dataproc Metastore configurados con una configuración de región personalizada:
- Restricciones de región o emparejamiento: no se permiten todas las regiones ni todas las combinaciones.
- Limitaciones de solo lectura: las regiones de solo lectura no pueden aceptar operaciones de escritura. Si se elige una región de solo lectura y no se puede acceder a la región de lectura y escritura, no se podrá procesar la escritura.
- Inmutabilidad de la configuración: una vez definida, la configuración de la región no se puede cambiar.
- Solo pila de EE. UU.: las regiones duales personalizadas solo admiten la pila
US
y están limitadas a la frontera de EE. UU.
Crear un servicio de región personalizado
Para configurar una región personalizada, elige dos regiones adyacentes al crear tu servicio. Esta combinación puede ser de dos regiones de lectura y escritura o de una región de lectura y escritura y otra de solo lectura.
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 Plus - Dual region (Enterprise Plus - Dos regiones).
En el campo Nombre del servicio, introduce un nombre único para tu servicio.
En Ubicación de los datos, seleccione EE. UU. (continente).
Aparecerá la sección Regiones personalizadas.
En Regiones personalizadas, selecciona una región de lectura y escritura y otra de solo lectura.
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.
gcloud
Para crear un servicio Dataproc Metastore con regiones personalizadas, ejecuta el siguiente comando de la CLI de gcloud:gcloud beta metastore services create
gcloud beta metastore services create SERVICE \ --read-write-regions
Haz los cambios siguientes:
SERVICE
: el nombre de tu servicio de Dataproc Metastore.READ_WRITE_REGIONS
: una región de lectura y escritura admitida que forma parte de tu configuración de región personalizada.READ_ONLY_REGIONS
: una región de solo lectura admitida que forma parte de tu configuración de región personalizada.