Usa buckets con espacio de nombres jerárquico habilitado para las cargas de trabajo de Hadoop

En esta página, se describe cómo usar los buckets habilitados para el espacio de nombres jerárquico para las cargas de trabajo de Hadoop.

Descripción general

Cuando usas un bucket de Cloud Storage con espacio de nombres jerárquico, puedes configurar el conector de Cloud Storage para usar la operación Cambiar nombre de carpeta en cargas de trabajo como Hadoop, Spark y Hive.

En un bucket sin espacio de nombres jerárquico, se realiza una operación de cambio de nombre en Hadoop, Spark y Hive implica varios trabajos de copia y eliminación de objetos, lo que afecta al rendimiento y la coherencia. Cambia el nombre de una carpeta con Cloud Storage, de este modo se optimiza el rendimiento y se garantiza la coherencia cuando se manejan carpetas con una gran cantidad de objetos.

Dataproc

Puedes usar Google Cloud CLI para crear un clúster de Dataproc y habilitar el conector de Cloud Storage para realizar las operaciones de la carpeta.

  1. Instala o actualiza la versión 2.2.23 o posterior del conector de Cloud Storage (excepto la versión 3.0.0).

  2. Crea un clúster de Dataproc con el siguiente comando:

      gcloud dataproc clusters create CLUSTER_NAME
      --properties=core:fs.gs.hierarchical.namespace.folders.enable=true,
      core:fs.gs.http.read-timeout=30000
      

    Aquí:

    • CLUSTER_NAME es el nombre del clúster. Por ejemplo: my-cluster
    • fs.gs.hierarchical.namespace.folders.enable se usa para habilitar el espacio de nombres jerárquico en un bucket.
    • fs.gs.http.read-timeout es el tiempo máximo permitido, en milisegundos, para leer datos de una conexión establecida. Este es un parámetro de configuración opcional.

Hadoop autoadministrado

Puedes habilitar el conector de Cloud Storage en tu clúster de Hadoop autoadministrado para realizar las operaciones con carpetas.

  1. Instala o actualiza la versión 2.2.23 o posterior del conector de Cloud Storage (excepto la versión 3.0.0).

  2. Agrega lo siguiente al archivo de configuración core-site.xml:

        <property>
          <name>fs.gs.hierarchical.namespace.folders.enable</name>
          <value>true</value>
        </property>
        <property>
          <name>fs.gs.http.read-timeout</name>
          <value>30000</value>
        </property>
      

    Aquí:

    • fs.gs.hierarchical.namespace.folders.enable se usa para habilitar el espacio de nombres jerárquico en un bucket
    • fs.gs.http.read-timeout es el tiempo máximo permitido, en milisegundos, para leer datos de una conexión establecida. Este es un parámetro de configuración opcional.

Compatibilidad con la versión 3.0.0 del conector de Cloud Storage o con versiones anteriores a la 2.2.23

Usar la versión 3.0.0 del conector de Cloud Storage o versiones anteriores a la 2.2.23 o inhabilitar las operaciones de carpetas para el espacio de nombres jerárquico puede generar las siguientes limitaciones:

  • Cambio de nombre ineficiente de carpetas: ocurren operaciones de cambio de nombre de carpetas en Hadoop usando operaciones de copiar y borrar a nivel de objeto, lo que es más lento y menos eficiente que la operación rename folder dedicada.

  • Acumulación de carpetas vacías: No se borran los recursos de las carpetas automáticamente, lo que generará la acumulación de carpetas vacías en tu bucket. La acumulación de carpetas vacías puede tener el siguiente impacto:

    • Aumenta los costos de almacenamiento si no se borra de forma explícita.
    • Ralentiza las operaciones de listas y aumenta el riesgo de tiempos de espera con operaciones operación de lista.

  • Problemas de compatibilidad: Mezclar el uso de la versión anterior y la nueva del conector, o habilitar e inhabilitar operaciones de carpetas puede generar problemas de compatibilidad cuando se les cambia el nombre a las carpetas. Considera la siguiente situación que usa una combinación de versiones de conector:

    1. Usa la versión del conector de Cloud Storage anterior a la 2.2.23 para realizar las siguientes tareas:

      1. Escribe objetos en la carpeta foo/.
      2. Cambia el nombre de la carpeta foo/ a bar/. La operación de cambio de nombre copia y borra los objetos en foo/, pero no borra la carpeta foo/ vacía.
    2. Usa la versión 2.2.23 del conector de Cloud Storage con la configuración de operaciones de carpetas para cambiar el nombre de la carpeta bar/ a foo/.

    La versión 2.2.23 del conector, con la operación de carpeta habilitada detecta la carpeta foo/ existente, lo que hace que la operación de cambio de nombre pueden fallar. La versión anterior del conector no eliminó la carpeta foo/ como se inhabilitó la operación de la carpeta.

¿Qué sigue?

Pruébalo tú mismo

Si es la primera vez que usas Google Cloud, crea una cuenta para evaluar el rendimiento de Cloud Storage en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.

Probar Cloud Storage gratis