Almacenamiento de datos para tablas internas

Dataproc Metastore usa asignaciones entre archivos del el sistema de archivos distribuido Hadoop (HDFS) o del sistema de almacenamiento compatible con Hive y las tablas de Apache Hive para administrar completamente metadatos. Los siguientes conceptos y consideraciones son importantes cuando se adjunta un clúster de Dataproc u otro clúster autoadministrado para usar un servicio de Dataproc Metastore como su almacén de metadatos de Hive.

Conceptos del almacén de metadatos de Hive

Todas las aplicaciones de Hive pueden tener tablas internas administradas o externas no administradas. En las tablas internas, el almacén de metadatos de Hive administra no solo los metadatos, sino también los datos de esas tablas. Por otro lado, en el caso de las tablas externas, el almacén de metadatos de Hive no administra los datos, sino solo los metadatos de esas tablas.

Por ejemplo, cuando borras una definición de tabla con la instrucción de SQL de Hive DROP TABLE:

drop table foo
  • Para tablas internas: El almacén de metadatos de Hive quita esas entradas de metadatos en el almacén de metadatos de Hive y también borra los archivos asociados con esta tabla en particular.

  • Para tablas externas: el almacén de metadatos de Hive solo borra los metadatos y conserva los datos asociados con esta tabla en particular.

Creación de un bucket de Cloud Storage

Cuando creas un servicio de Dataproc Metastore, se crea de forma automática un bucket de Cloud Storage para tu proyecto. Este bucket se usa como almacenamiento permanente para almacenar los artefactos y metadatos del servicio, como los archivos de volcado y los registros de depuración.

Directorio de almacenes de Hive

A fin de que el almacén de metadatos de Hive funcione de forma correcta, ya sea para tablas internas o externas, es posible que debas proporcionar a Dataproc Metastore el directorio del almacén de Hive en el momento de la creación del servicio. Este directorio contiene subdirectorios que corresponden a tablas internas y que almacenan los datos reales en la tabla. A menudo son buckets de Cloud Storage.

Ya sea que proporciones Dataproc Metastore con un directorio de almacén o no, Dataproc Metastore crea un bucket de artefactos de Cloud Storage para almacenar artefactos de servicio a fin de que los consumas.

Si eliges proporcionar un directorio de almacenes de Hive, haz lo siguiente:

  • Asegúrate de que tu servicio de Dataproc Metastore tenga permiso para acceder al directorio del almacén. Para ello, se otorga el agente de servicio de control de Dataproc Metastore con acceso de lectura/escritura de objeto, es decir, roles/storage.objectAdmin. Esta concesión se debe establecer a nivel de bucket o superior. La cuenta de servicio a la que debes otorgar acceso es service-customer-project-number@gcp-sa-metastore.iam.gserviceaccount.com.

    Consulta Control de acceso de Cloud Storage para obtener información sobre cómo otorgar permisos de lectura/escritura a los agentes de servicio de Dataproc Metastore en tu directorio de almacenes.

Si eliges no proporcionar un directorio de almacenes de Hive:

  • Dataproc Metastore crea de forma automática un directorio de almacén de datos en una ubicación predeterminada, gs://your-artifacts-bucket/hive-warehouse.

  • Asegúrate de que tu cuenta de servicio de VM de Dataproc tenga permiso para acceder al directorio del almacén. Para ello, otorga al agente de servicio de la VM de Dataproc con acceso de lectura y escritura de objeto, es decir, roles/storage.objectAdmin. Esta concesión se debe establecer a nivel de bucket o superior.

Borra tu bucket de Cloud Storage

Si borras el servicio de Dataproc Metastore, no se borra el bucket de artefactos de Cloud Storage. Esto se debe a que tu bucket puede contener datos útiles posteriores al servicio. Si deseas borrar tu bucket, debes hacerlo de forma explícita.

¿Qué sigue?