Hive Metastore

Dataproc Metastore es un almacén de metadatos de Apache Hive (HMS) completamente administrado, con alta disponibilidad, reparación automática y sin servidores que se ejecuta en Google Cloud.

Para administrar por completo tus metadatos, Dataproc Metastore asigna tus datos a las tablas de Apache Hive.

Versiones compatibles de Apache Hive

Dataproc Metastore solo admite versiones específicas de Apache Hive. Para obtener más información, consulta la política de la versión de Hive.

Cómo Hive controla los metadatos

Dado que Dataproc Metastore es un almacén de metadatos de Hive, es importante comprender cómo administra los metadatos.

De forma predeterminada, todas las aplicaciones de Hive pueden tener tablas internas administradas o tablas externas no administradas. Es decir, los metadatos que almacenas en un servicio de Dataproc Metastore pueden existir en tablas internas y externas.

Cuando se modifican datos, un servicio de Dataproc Metastore (Hive) trata las tablas internas y externas de manera diferente.

  • Tablas internas. Administra metadatos y datos de tablas.
  • Tablas externas. Solo administra metadatos.

Por ejemplo, si borras una definición de tabla mediante la instrucción de SQL de Hive DROP TABLE, ocurrirá lo siguiente:

drop table foo
  • Tablas internas. Dataproc Metastore borra todos los metadatos. También se borran los archivos asociados con la tabla.

  • Tablas externas. Dataproc Metastore solo borra los metadatos. Mantiene los datos asociados con la tabla.

Directorio de almacenes de Hive

Dataproc Metastore usa el directorio de almacén de Hive para administrar tus tablas internas. El directorio del almacén de Hive es donde se almacenan los datos reales.

Cuando usas un servicio de Dataproc Metastore, el directorio de almacén de Hive predeterminado es un bucket de Cloud Storage. Dataproc Metastore solo admite el uso de buckets de Cloud Storage para el directorio del almacén. En comparación, esto es diferente de un HMS local, en el que el directorio del almacén de Hive suele apuntar a un directorio local.

Este bucket se crea de forma automática cada vez que creas un servicio de Dataproc Metastore. Este valor se puede cambiar si configuras una anulación de configuración de Hive Metastore en la propiedad hive.metastore.warehouse.dir.

Artefactos de buckets de Cloud Storage

El bucket de artefactos almacena tus artefactos de Dataproc Metastore, como los metadatos exportados y los datos de tablas internas administradas.

Cuando creas un servicio de Dataproc Metastore, se crea de forma automática un bucket de Cloud Storage para tu proyecto. De forma predeterminada, el bucket de artefactos y el directorio del almacén apuntan al mismo bucket. No puedes cambiar la ubicación del bucket de artefactos, pero puedes cambiar la ubicación del directorio del almacén de Hive.

El bucket de artefactos se encuentra en la siguiente ubicación:

  • gs://your-artifacts-bucket/hive-warehouse.
  • Por ejemplo, gs://gcs-your-project-name-0825d7b3-0627-4637-8fd0-cc6271d00eb4.

Accede al directorio del almacén de Hive

Después de crear el bucket de forma automática, asegúrate de que las cuentas de servicio de Dataproc tengan permiso para acceder al directorio del almacén de Hive.

  • Para acceder al directorio del almacén a nivel de objeto (por ejemplo, gs://mybucket/object), otorga a las cuentas de servicio de Dataproc acceso de lectura y escritura al objeto de almacenamiento del bucket mediante el rol roles/storage.objectAdmin. Esta función debe establecerse a nivel de bucket o superior.

  • Para acceder al directorio del almacén cuando uses una carpeta de nivel superior, (por ejemplo, gs://mybucket), otorga a las cuentas de servicio de Dataproc acceso de lectura y escritura al objeto de almacenamiento del bucket mediante el rol roles/storage.storageAdmin.

Si el directorio del almacén de Hive no está en el mismo proyecto que Dataproc Metastore, asegúrate de que el agente de servicio de Dataproc Metastore tenga permiso para acceder al directorio de almacén de Hive. El agente de servicio para un proyecto de Dataproc Metastore es service-PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com. Otorga al agente de servicio acceso de lectura y escritura en el bucket mediante el rol roles/storage.objectAdmin.

Busca el directorio del almacén de Hive

  1. Abre la página Dataproc Metastore.
  2. Haz clic en el nombre de tu servicio.

    Se abrirá la página de detalles del servicio.

  3. En la tabla de configuración, busca Anulaciones de configuración de Metastore > hive.metastore.warehouse.dir.

  4. Busca el valor que comienza con gs://.

    Este valor es la ubicación de tu directorio de almacén de Hive.

    Valores de hive.metastore.warehouse.dir

Cambia el directorio del almacén de datos de Hive

Para usar tu propio bucket de Cloud Storage con Dataproc Metastore, configura una anulación de la configuración de Hive Metastore para que apunte a la ubicación nueva del bucket.

Si cambias tu directorio de almacén predeterminado, sigue estas recomendaciones.

  • No uses la raíz del bucket de Cloud Storage (gs://mybucket) para almacenar tablas de Hive.

  • Asegúrate de que tu cuenta de servicio de la VM de Dataproc Metastore tenga permiso para acceder al directorio del almacén de Hive.

  • Para obtener mejores resultados, usa los buckets de Cloud Storage que se encuentren en la misma región que tu servicio de Dataproc Metastore. Aunque Dataproc Metastore permite buckets entre regiones, los recursos ubicados en la misma ubicación tienen un mejor rendimiento. Por ejemplo, un bucket multirregional de la UE no funciona bien con un servicio us-central1. El acceso entre regiones genera una mayor latencia, falta de aislamiento de fallas regionales y cargos por el ancho de banda de red entre regiones.

Cambia el directorio del almacén de Hive

  1. Abre la página Dataproc Metastore.
  2. Haz clic en el nombre de tu servicio.

    Se abrirá la página de detalles del servicio.

  3. En la tabla de configuración, busca la sección Anulaciones de configuración de Metastore > hive.metastore.warehouse.dir.

  4. Cambia el valor de hive.metastore.warehouse.dir por la ubicación de tu bucket nuevo. Por ejemplo, gs://my-bucket/path/to/location

Borra tu bucket

Si borras el servicio de Dataproc Metastore, no se borrará de forma automática tu bucket de artefactos de Cloud Storage. Tu bucket no se borra de forma automática porque puede contener datos útiles posteriores al servicio. Para borrar tu bucket, ejecuta una operación de eliminación de Cloud Storage.

¿Qué sigue?