En esta página se describe cómo usar los espacios de nombres jerárquicos en los contenedores habilitados para cargas de trabajo de Hadoop.
Información general
Cuando se usa un segmento de Cloud Storage con un espacio de nombres jerárquico, se puede configurar el conector de Cloud Storage para que use la operación cambiar nombre de carpeta en cargas de trabajo como Hadoop, Spark o Hive.
En un contenedor sin espacio de nombres jerárquico, 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. Cambiar el nombre de una carpeta mediante el conector de Cloud Storage optimiza el rendimiento y garantiza la coherencia al gestionar carpetas con un gran número de objetos.
Antes de empezar
Para usar las funciones de los segmentos de espacio de nombres jerárquico, usa las siguientes versiones del conector de Cloud Storage:
- 2.2.23 o una versión posterior (si usas la versión 2.x.x)
- 3.0.1 o posterior (si usas la versión 3.x.x)
Las versiones anteriores del conector (3.0.0 y anteriores a la 2.2.23) tienen limitaciones. Para obtener más información sobre las limitaciones, consulta Compatibilidad con el conector de Cloud Storage versión 3.0.0 o versiones anteriores a la 2.2.23.
Habilitar el conector de Cloud Storage en un clúster
En esta sección se describe cómo habilitar el conector de Cloud Storage en un clúster de Dataproc y en un clúster de Hadoop autogestionado.
Dataproc
Puedes usar la CLI de Google Cloud para crear un clúster de Dataproc y habilitar el conector de Cloud Storage para realizar las operaciones de carpetas.
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
Donde:
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 segmento.fs.gs.http.read-timeout
es el tiempo máximo permitido, en milisegundos, para leer datos de una conexión establecida. Este ajuste es opcional.
Hadoop autogestionado
Puedes habilitar el conector de Cloud Storage en tu clúster de Hadoop autogestionado para realizar las operaciones de carpetas.
Añade 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>
Donde:
fs.gs.hierarchical.namespace.folders.enable
se usa para habilitar el espacio de nombres jerárquico en un segmentofs.gs.http.read-timeout
es el tiempo máximo permitido, en milisegundos, para leer datos de una conexión establecida. Este ajuste es opcional.
Compatibilidad con la versión 3.0.0 del conector de Cloud Storage o versiones anteriores a la 2.2.23
Si usas la versión 3.0.0 del conector de Cloud Storage o versiones anteriores a la 2.2.23, o bien si inhabilitas las operaciones de carpetas para el espacio de nombres jerárquico, se pueden producir las siguientes limitaciones:
Cambios de nombre de carpetas ineficientes: en Hadoop, los cambios de nombre de carpetas se realizan mediante operaciones de copia y eliminación a nivel de objeto, lo que es más lento y menos eficiente que la operación
rename folder
específica.Acumulación de carpetas vacías: las carpetas no se eliminan automáticamente, lo que provoca que se acumulen carpetas vacías en tu cubo. La acumulación de carpetas vacías puede tener las siguientes consecuencias:
- Aumentan los costes de almacenamiento si no se eliminan explícitamente.
Ralentizan las operaciones de lista y aumentan el riesgo de que se agote el tiempo de espera de las operaciones de lista.
Problemas de compatibilidad: si se mezclan versiones antiguas y nuevas del conector, o si se habilitan y se inhabilitan las operaciones de carpetas, pueden surgir problemas de compatibilidad al cambiar el nombre de las carpetas. Veamos la siguiente situación, en la que se usa una combinación de versiones de conectores:
Usa la versión del conector de Cloud Storage anterior a la 2.2.23 para realizar las siguientes tareas:
- Escribe objetos en la carpeta
foo/
. - Cambia el nombre de la carpeta
foo/
abar/
. La operación de cambio de nombre copia y elimina los objetos defoo/
, pero no elimina la carpetafoo/
vacía.
- Escribe objetos en la carpeta
Usa la versión 2.2.23 del conector de Cloud Storage con los ajustes de operaciones de carpetas habilitados para cambiar el nombre de la carpeta
bar/
afoo/
.
La versión 2.2.23 del conector, con la operación de carpeta habilitada, detecta la carpeta
foo/
, lo que provoca que la operación de cambio de nombre falle. La versión anterior del conector no eliminaba la carpetafoo/
porque la operación de la carpeta estaba inhabilitada.
Siguientes pasos
Pruébalo
Si es la primera vez que utilizas Google Cloud, crea una cuenta para evaluar el rendimiento de Cloud Storage en situaciones reales. Los nuevos clientes también reciben 300 USD en crédito gratuito para ejecutar, probar y desplegar cargas de trabajo.
Probar Cloud Storage gratis