En esta página, se describe cómo usar buckets con el espacio de nombres jerárquico habilitado 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 el nombre de la carpeta para 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 que realice las operaciones de carpetas.
Instala o actualiza el conector de Cloud Storage a la versión 2.2.23 o una posterior (excepto la versión 3.0.0).
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 de carpetas.
Instala o actualiza el conector de Cloud Storage a la versión 2.2.23 o una posterior (excepto la versión 3.0.0).
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 versiones anteriores a la 2.2.23
El uso de la versión 3.0.0 del conector de Cloud Storage o versiones anteriores a la 2.2.23, o la inhabilitación de 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 los siguientes efectos:
- Aumenta los costos de almacenamiento si no se borran 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:
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 borra los objetos enfoo/
, pero no borra la carpetafoo/
vacía.
- Escribe objetos en la carpeta
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/
afoo/
.
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 carpetafoo/
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