Hive Metastore

Dataproc Metastore es un servicio de base de datos almacén de metadatos de Apache Hive (HMS) con 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 Apache Hive tablas.

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 versiones de Hive.

Cómo Hive controla los metadatos

Dado que Dataproc Metastore es un metastore de Hive, es importante comprender cómo administra tus 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 los 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 con la instrucción de SQL de Hive DROP TABLE:

drop table foo
  • Tablas internas. Dataproc Metastore borra todos los metadatos. También borra 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 de almacén de Hive es donde se encuentran tus datos reales. se almacenan.

Cuando usas un servicio de Dataproc Metastore, el almacén predeterminado de Hive es un bucket de Cloud Storage. Solo Dataproc Metastore 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 automáticamente cada vez que creas un Servicio de Dataproc Metastore. Este valor se puede cambiar estableciendo una anulación de configuración de Metastore de Hive en el hive.metastore.warehouse.dir propiedad.

Artefactos de los buckets de Cloud Storage

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

Cuando creas un servicio de Dataproc Metastore, se crea de forma automática un bucket de Cloud Storage para tu proyecto. De forma predeterminada, tanto El bucket de artefactos y el directorio del almacén apuntan al mismo bucket. Tú No puedes cambiar la ubicación del bucket de artefactos, pero sí puedes Cambia 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 de almacenes de Hive

Después de que se cree automáticamente tu bucket, asegúrate de que tus cuentas de servicio de Dataproc tengan permiso para acceder al directorio de almacenes de Hive.

  • Para acceder al directorio del almacén a nivel del 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 con el rol roles/storage.objectAdmin. Esta función debe establecerse a nivel de bucket o superior.

  • Para acceder al directorio del almacén cuando usas 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 con el rol roles/storage.storageAdmin.

Si el directorio de almacenes 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 almacenes 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 al bucket con 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 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 Hive

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

Si cambias el 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 la cuenta de servicio de la VM de Dataproc Metastore tenga permiso para acceder al directorio de almacenes de Hive.

  • Para obtener mejores resultados, usa los buckets de Cloud Storage que se encuentran en en la misma región que tu servicio de Dataproc Metastore. Si bien Dataproc Metastore permite buckets entre regiones, de los recursos de ubicación funcionan mejor. Por ejemplo, un bucket multirregional de la UE no funciona bien con un servicio us-central1. El acceso entre regiones da como resultado una latencia más alta, falta de aislamiento de fallas regionales y cargos por ancho de banda de red entre regiones.

Para cambiar el directorio de almacenes de Hive, haz lo siguiente:

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

    Se abrirá la página Detalles del servicio.

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

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

Borra tu bucket

Borrar tu servicio de Dataproc Metastore no borrar el bucket de artefactos de Cloud Storage. Tu bucket no se borra automáticamente porque puede contener datos útiles posteriores al servicio. Para borrar tu bucket, haz lo siguiente: ejecutar una operación de eliminación de Cloud Storage

¿Qué sigue?