Después de crear un servicio de Dataproc Metastore, puedes adjuntar cualquiera de las siguientes opciones para usar el servicio como su almacén de metadatos de Hive:
- Un clúster de Dataproc
- Un clúster autoadministrado Apache Hive, Apache Spark o Presto
Antes de comenzar
Para obtener una conectividad de red óptima, crea el clúster de Dataproc en la misma región que el servicio de Dataproc Metastore.
La imagen de Dataproc y la versión de Hive Metastore Hive deben ser compatibles. Verifica las siguientes páginas de control de versiones de imágenes para asegurarte de que la versión de Hive sea compatible:
- Versiones de actualización 2.0.x de Dataproc
- Versiones de actualización 1.5.x de Dataproc
- Versiones de actualización 1.4.x de Dataproc
Para obtener más información, consulta la Lista de versiones con imágenes de Dataproc.
Para usar cualquier servicio de Dataproc Metastore, incluido uno en el mismo proyecto que el clúster de Dataproc, estos clústeres deben estar en la misma red. Un clúster también puede usar una subred de la red del servicio de Dataproc Metastore. Si el clúster de Dataproc pertenece a un proyecto diferente al de la red, debes configurar los permisos de red compartida.
Ten en cuenta que, si usas clústeres de Auth personales, debes usar un almacén de metadatos con gRPC habilitado. Si quieres obtener más información para convertir tu metastore en gRPC o crear un nuevo almacén de metadatos basado en gRPC, consulta Elige el protocolo de extremo.
Control de acceso
Asegúrate de que tu cuenta de servicio de VM de Dataproc tenga permisos de lectura y escritura de objetos para acceder al directorio del almacén de almacenes de Dataproc Metastore. Para obtener más información, consulta el directorio de almacenes de Hive.
Si trabajas con una implementación de varios proyectos, debes configurar permisos adicionales antes de crear un clúster de Dataproc Metastore. Una implementación entre proyectos puede consistir en dos o tres proyectos, con el clúster de Dataproc en un proyecto de clúster, el servicio de Dataproc Metastore en un proyecto de metastore y la red en cualquiera de los dos proyectos anteriores o en su propio proyecto de red. También es posible que el clúster de Dataproc y el servicio de Dataproc Metastore compartan un proyecto mientras la red se encuentra en su propio proyecto de red.
En el siguiente diagrama, se proporciona una descripción general de las posibles configuraciones del proyecto cuando se implementa un clúster de Dataproc Metastore:
Cuando se usa una red de VPC que pertenece a un proyecto diferente del servicio, debes proporcionar el nombre completo del recurso relativo en
gcloud metastore services create SERVICE
.gcloud metastore services create SERVICE \ --network=projects/HOST_PROJECT/global/networks/NETWORK_ID
Adjuntar un clúster de Dataproc
Puedes crear y adjuntar un clúster de Dataproc que use el servicio de Dataproc Metastore como su almacén de metadatos de Hive.
Configura una implementación entre proyectos
Las implementaciones entre proyectos en las que el clúster de Dataproc y el servicio de Dataproc Metastore están en proyectos diferentes requieren una configuración de permisos. No necesitas realizar esta configuración para casos en los que el clúster de Dataproc y el servicio de Dataproc Metastore comparten un proyecto mientras la red se encuentra en su propio proyecto de red.
Después de configurar los permisos de red, debes otorgar la función de visualizador de Dataproc Metastore en el proyecto de metastore al agente de servicio de Dataproc del proyecto del clúster. La cuenta del agente de servicio de Dataproc tiene el formato service-<cluster-project-number>@dataproc-accounts.iam.gserviceaccount.com
.
Debes hacer referencia al número del proyecto del clúster.
Console
Para encontrar el número de proyecto, haz lo siguiente:
Navega a la pestaña Configuración de IAM y administración.
En la lista de proyectos en la parte superior de la página, selecciona el proyecto que usarás para crear el clúster de Dataproc.
Anota el número del proyecto.
Configure los permisos:
Navega a la pestaña IAM.
Selecciona el proyecto de Metastore de la lista de proyectos que se encuentra en la parte superior de la página.
Haga clic en Agregar.
Ingresa la cuenta de servicio en el campo Principales nuevas.
En el menú Funciones, selecciona Dataproc Metastore > Visualizador de Dataproc Metastore.
Haga clic en Agregar.
Ahora puedes crear un clúster de Dataproc con el servicio y la red o subred de Dataproc Metastore del proyecto de Metastore.
Cree un clúster de Dataproc.
En las siguientes instrucciones, se muestra cómo crear y adjuntar un clúster de Dataproc.
Console
En Cloud Console, abra la página Crear un clúster de Dataproc:
Ingresa el campo Nombre del clúster.
En los menús Región y Zona, selecciona una región y una zona para el clúster. Puedes seleccionar una región distinta para aislar las ubicaciones de recursos y metadatos de almacenamiento dentro de la región especificada. Si seleccionas una región distinta, puedes seleccionar “Sin preferencia” a fin de que la zona permita que Dataproc elija una zona dentro de la región seleccionada para tu clúster (consulta Ubicación de zona automática de Dataproc).
Haga clic en la pestaña Personalizar clúster.
En la sección Configuración de red, selecciona la misma red especificada durante la creación del servicio de almacén de metadatos.
En la sección Dataproc Metastore, selecciona tu servicio de Metastore. Si todavía no creaste uno, puedes seleccionar Create New Service.
Haga clic en Create para generar el clúster.
Tu clúster nuevo aparecerá en la lista de clústeres. El estado del clúster aparece como “Aprovisionando” hasta que esté listo para usarse. Luego, el estado cambia a "Running".
gcloud
Ejecuta el siguiente comando gcloud dataproc clusters create
para crear un clúster:
gcloud dataproc clusters create CLUSTER_NAME \ --dataproc-metastore=projects/PROJECT_ID/locations/LOCATION/services/SERVICE \ --region=LOCATION
Reemplaza lo siguiente:
CLUSTER_NAME
es el nombre del clúster nuevo.PROJECT_ID
: Es el ID del proyecto en el que creaste el servicio de Dataproc Metastore.LOCATION
: Es la misma región que especificaste para el servicio de Dataproc Metastore.SERVICE
: Es el nombre del servicio de Dataproc Metastore.
REST
Sigue las instrucciones de la API para crear un clúster mediante el Explorador de API.
Conecta un clúster de Dataproc con ENDPOINT_URI
y WAREHOUSE_DIR
Puedes conectar un clúster de Dataproc mediante las propiedades ENDPOINT_URI
y WAREHOUSE_DIR
. Esto es útil si tu servicio de Dataproc Metastore usa Private Service Connect o si deseas adjuntar la versión auxiliar de tu servicio de Dataproc Metastore.
Para obtener más información sobre estas propiedades y dónde encontrarlas, consulta Cómo adjuntar un clúster autoadministrado.
Existen dos maneras de adjuntar un clúster de Dataproc mediante las propiedades ENDPOINT_URI
y WAREHOUSE_DIR
:
Opción 1: Proporciona la siguiente configuración de configuración de propiedades de Hive mientras creas el clúster de Dataproc.
Ejecuta el siguiente comando
gcloud dataproc clusters create
:gcloud dataproc clusters create CLUSTER_NAME \ --properties="hive:hive.metastore.uris=$ENDPOINT_URI,hive:hive.metastore.warehouse.dir=$WAREHOUSE_DIR/hive-warehouse"
Opción 2: Actualiza el
hive-site.xml
en el clúster de Dataproc con el URI del extremo que se muestra enNetworkConfig
.Establece una conexión SSH al instancia de clúster principal de Dataproc y realiza lo siguiente:
Modifica
/etc/hive/conf/hive-site.xml
en el clúster de Dataproc:<property> <name>hive.metastore.uris</name> <!-- Update this value. --> <value>ENDPOINT_URI</value> </property> <!-- Add this property entry. --> <property> <name>hive.metastore.warehouse.dir</name> <value>WAREHOUSE_DIR</value> </property>
Reinicia HiveServer2:
sudo systemctl restart hive-server2.service
Adjunta un clúster autoadministrado
Después de crear un servicio, puedes conectar un clúster autoadministrado de Apache Hive, Apache Spark o Presto que use el servicio como su almacén de metadatos de Hive. Para ello, configura lo siguiente en la configuración del cliente:
hive.metastore.uris=ENDPOINT_URI
hive.metastore.warehouse.dir=WAREHOUSE_DIR
Reemplaza lo siguiente:
ENDPOINT_URI
: El URI del extremo del almacén de metadatos de Hive que se usa para acceder al servicio de almacén de metadatos.Para encontrar el valor de URI de extremo que se usará, haz clic en el nombre del servicio de tu servicio en la página Dataproc Metastore. Esto te lleva a la página Detalles del servicio de ese servicio, en la que puedes usar el valor de URL que comienza con
thrift://
.WAREHOUSE_DIR
: Se refiere al directorio de las anulaciones de configuración del almacén de metadatos de Hive. Puede seguir el formatogs://.*hive-warehouse
.Para encontrar el directorio de almacén y usarlo, haz clic en el nombre del servicio de tu servicio en la página Dataproc Metastore. Esto te lleva a la página Detalles del servicio de ese servicio, en la que puedes usar el valor hive.metastore.warehouse.dir en Anulaciones de configuración del almacén de metadatos.

¿Qué sigue?
- Guía de inicio rápido para implementar Dataproc Metastore
- Descripción general de Dataproc Metastore
- Resumen de Dataproc