Después de crear un servicio de Dataproc Metastore, puedes adjuntar cualquiera de los siguientes servicios:
- Un clúster de Managed Service para Apache Spark
- Una instancia autoadministrada de Apache Hive, una instancia de Apache Spark, o un clúster de Presto.
Después de conectar uno de estos servicios, usará tu servicio de Dataproc Metastore como su almacén de metadatos de Hive durante la ejecución de la consulta.
Antes de comenzar
- Habilita Dataproc Metastore en tu proyecto.
- Crea un servicio de Dataproc Metastore.
- Comprende los requisitos de red específicos de tu proyecto.
Funciones requeridas
Para obtener los permisos que necesitas para crear un Dataproc Metastore y un clúster de Managed Service para Apache Spark, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Para otorgar control total de 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 - Administrador de Dataproc Metastore (
roles/metastore.admin) en la cuenta de usuario o la cuenta de servicio
- Editor de Dataproc Metastore (
-
Para crear un clúster de Managed Service para Apache Spark:
(
roles/dataproc.worker) en la cuenta de servicio de VM de Managed Service para Apache Spark -
Para otorgar permisos de lectura y escritura al directorio del almacén de Hive:
(
roles/storage.objectAdmin) en la cuenta de servicio de VM de Managed Service para Apache Spark
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 Dataproc Metastore y un clúster de Managed Service para Apache Spark. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear un Dataproc Metastore y un clúster de Managed Service para Apache Spark:
- Para crear un Dataproc Metastore: metastore.services.create en la cuenta de usuario o la cuenta de servicio
- Para crear un clúster de Managed Service para Apache Spark: dataproc.clusters.create en la cuenta de usuario o la cuenta de servicio
-
Para acceder al directorio del almacén de Hive:
orgpolicy.policy.get1,resourcemanager.projects.get,resourcemanager.projects.list,storage.objects.*,storage.multipartUploads.*en la cuenta de servicio de VM de Managed Service para Apache Spark
También puedes obtener estos permisos con roles personalizados o otros roles predefinidos.
Para obtener más información sobre los roles y permisos específicos de Dataproc Metastore, consulta Administra el acceso con IAM.Clústeres de Managed Service para Apache Spark
Managed Service para Apache Spark es un servicio administrado de Apache Spark y Apache Hadoop con el que puedes aprovechar herramientas de datos de código abierto para ejecutar procesamiento por lotes, consultas, transmisiones y aprendizaje automático.
Consideraciones
Antes de crear y adjuntar un clúster de Managed Service para Apache Spark, verifica qué protocolo de extremo usa tu servicio de Dataproc Metastore. Este protocolo define cómo tus clientes de Hive Metastore acceden a los metadatos almacenados en tu Dataproc Metastore. Esta elección también puede afectar las funciones que puedes integrar y usar con tu servicio.
Apache Thrift
Si usas el protocolo de extremo de Apache Thrift, ten en cuenta los siguientes requisitos de red:
De forma predeterminada, debes crear tu clúster de Managed Service para Apache Spark y el servicio de Dataproc Metastore en la misma red. Tu clúster de Managed Service para Apache Spark también puede usar una subred de la red del servicio de Dataproc Metastore.
Si tu clúster de Managed Service para Apache Spark pertenece a un proyecto diferente de la red, debes configurar los permisos de red compartida.
Si tu clúster de Managed Service para Apache Spark pertenece a un proyecto diferente de tu servicio de Dataproc Metastore, debes configurar permisos adicionales antes de crear un clúster de Managed Service para Apache Spark.
gRPC
Si usas el protocolo de extremo de gRPC, ten en cuenta los siguientes requisitos de red:
Después de crear un Dataproc Metastore con el protocolo de extremo de gRPC, debes otorgar roles de IAM adicionales.
Si usas la autenticación de clúster personal de Dataproc, tu Dataproc Metastore debe usar el protocolo de extremo de gRPC.
Si tu clúster de Managed Service para Apache Spark pertenece a un proyecto diferente de tu servicio de Dataproc Metastore, debes configurar permisos adicionales antes de crear un clúster de Managed Service para Apache Spark.
Crea un clúster y adjunta un Dataproc Metastore
En las siguientes instrucciones, se muestra cómo crear un clúster de Managed Service para Apache Spark y conectarte a él desde un servicio de Dataproc Metastore. En estas instrucciones, se supone que ya creaste un servicio de Dataproc Metastore.
- Antes de crear tu clúster de Managed Service para Apache Spark, asegúrate de que la imagen de Managed Service para Apache Spark que elijas sea compatible con la versión del almacén de metadatos de Hive que seleccionaste cuando creaste tu Dataproc Metastore. Para obtener más información, consulta la lista de versiones de imágenes de Managed Service para Apache Spark.
Para optimizar la conectividad de red, crea el clúster de Managed Service para Apache Spark en la misma región que tu servicio de Dataproc Metastore.
Console
En la Google Cloud consola de, abre la página Crear un clúster de Managed Service para Apache Spark:
En el campo Nombre del clúster, ingresa un nombre para tu clúster.
En los menús Región y Zona, selecciona la misma región en la que creaste tu servicio de Dataproc Metastore. Puedes elegir cualquier zona.
Haz clic en la pestaña Personalizar clúster.
En la sección Configuración de red, selecciona la misma red en la que creaste tu servicio de Dataproc Metastore.
En la sección Dataproc Metastore, selecciona el servicio de Dataproc Metastore que deseas adjuntar. Si aún no creaste uno, puedes seleccionar Crear servicio nuevo.
Opcional: Si tu servicio de Dataproc Metastore usa el protocolo de extremo de gRPC, haz lo siguiente:
- Haz clic en la pestaña Administrar seguridad.
- En la sección Acceso al proyecto, selecciona Habilitar el alcance de la plataforma de nube para este clúster.
Configura las opciones de servicio restantes según sea necesario.
Para crear el clúster, haz clic en Crear.
Tu clúster nuevo aparece en la lista Clústeres. El estado del clúster aparece como Aprovisionando hasta que esté listo para usarse. Cuando esté listo para usarse, el estado cambiará a En ejecución.
gcloud CLI
Para crear un clúster y adjuntar un Dataproc Metastore, ejecuta el
siguiente gcloud dataproc clusters create
comando:
gcloud dataproc clusters create CLUSTER_NAME \
--dataproc-metastore=projects/PROJECT_ID/locations/LOCATION/services/SERVICE \
--region=LOCATION \
--scopes=SCOPESReemplaza lo siguiente:
CLUSTER_NAME: Es el nombre de tu nuevo clúster de Managed Service para Apache Spark.PROJECT_ID: Es el ID del proyecto en el que creaste tu servicio de Dataproc Metastore.LOCATION: Es la misma región en la que creaste tu servicio de Dataproc Metastore.SERVICE: Es el nombre del servicio de Dataproc Metastore que adjuntas al clúster.SCOPES: (Opcional) Si tu servicio de Dataproc Metastore usa el protocolo de extremo de gRPC, usacloud-platform.
REST
Sigue las instrucciones de la API para crear un clúster mediante el Explorador de API.
Adjunta un clúster con las propiedades del clúster de Managed Service para Apache Spark
También puedes adjuntar un clúster de Managed Service para Apache Spark a un Dataproc Metastore
con las propiedades de Managed Service para Apache Spark.
Estas propiedades incluyen ENDPOINT_URI y WAREHOUSE_DIR de Dataproc Metastore.
Usa estas instrucciones si tu servicio de Dataproc Metastore usa Private Service Connect o si deseas adjuntar un clúster de Managed Service para Apache Spark a la versión auxiliar de tu servicio de Dataproc Metastore.
Hay dos formas de adjuntar un clúster de Managed Service para Apache Spark con las propiedades ENDPOINT_URI y WAREHOUSE_DIR:
Opción 1: Mientras creas un clúster de Managed Service para Apache Spark
Cuando crees un clúster de Managed Service para Apache Spark, usa la marca de propiedades con la siguiente configuración de Hive.
gcloud dataproc clusters create CLUSTER_NAME \
--properties="hive:hive.metastore.uris=ENDPOINT_URI,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR/hive-warehouse"Reemplaza lo siguiente:
CLUSTER_NAME: Es el nombre de tu nuevo clúster de Managed Service para Apache Spark.ENDPOINT_URI: Es el URI del extremo de tu servicio de Dataproc Metastore.WAREHOUSE_DIR: Es la ubicación de tu directorio del almacén de Hive.
Opción 2: Actualiza el archivo hive-site.xml
También puedes adjuntar un clúster de Managed Service para Apache Spark si modificas directamente el archivo hive-site.xml del clúster.
- Conéctate al clúster
.*-mcon SSH. Abre el archivo
/etc/hive/conf/hive-site.xmly modifica las siguientes líneas:<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>Reemplaza lo siguiente:
ENDPOINT_URI: Es el URI del extremo de tu servicio de Dataproc Metastore.WAREHOUSE_DIR: Es la ubicación de tu directorio del almacén de Hive.
Reinicia HiveServer2:
sudo systemctl restart hive-server2.service
Clústeres autoadministrados
Un clúster autoadministrado puede ser una instancia de Apache Hive, una instancia de Apache Spark, o un clúster de Presto.
Adjunta un clúster autoadministrado
Establece los siguientes valores en tu archivo de configuración del cliente:
hive.metastore.uris=ENDPOINT_URIhive.metastore.warehouse.dir=WAREHOUSE_DIR
Reemplaza lo siguiente:
ENDPOINT_URI: Es el URI del extremo de tu servicio de Dataproc Metastore.WAREHOUSE_DIR: Es la ubicación de tu directorio del almacén de Hive.
¿Qué sigue?
- Guía de inicio rápido para implementar Dataproc Metastore
- Descripción general de Dataproc Metastore
- Descripción general de Managed Service para Apache Spark