Neste documento, descrevemos como configurar o conector do Cloud Storage em um cluster para realizar operações de pasta e explicamos as considerações de compatibilidade para versões anteriores do conector.
Ao usar o conector do Cloud Storage em um cluster com um bucket com namespace hierárquico, você ativa as renomeações atômicas de pastas na configuração do cluster, o que melhora o desempenho e a consistência ao lidar com pastas grandes para cargas de trabalho do Hadoop, Spark e Hive. Em buckets sem namespace hierárquico, uma operação de renomeação envolve vários jobs de cópia e exclusão de objetos, o que pode afetar o desempenho e a consistência.
Antes de começar
Para usar os recursos de buckets de namespace hierárquico, use as seguintes versões do conector do Cloud Storage:
- 2.2.23 ou posterior (se você estiver usando a versão 2.x.x)
- 3.0.1 ou mais recente (se você estiver usando a versão 3.x.x)
As versões anteriores do conector (3.0.0 e anteriores à 2.2.23) têm limitações. Para mais informações sobre as limitações, consulte Compatibilidade com o conector do Cloud Storage versão 3.0.0 ou anteriores à 2.2.23.
Ativar o conector do Cloud Storage em um cluster
Nesta seção, descrevemos como ativar o conector do Cloud Storage em um cluster do Serviço Gerenciado para Apache Spark e em um cluster autogerenciado do Hadoop.
Serviço Gerenciado para Apache Spark
É possível usar a Google Cloud CLI para criar um cluster do Serviço Gerenciado para Apache Spark e permitir que o conector do Cloud Storage execute as operações da pasta.
Crie um cluster do Serviço Gerenciado para Apache Spark usando o seguinte comando:
gcloud dataproc clusters create CLUSTER_NAME --properties=core:fs.gs.hierarchical.namespace.folders.enable=true, core:fs.gs.http.read-timeout=30000
Em que:
CLUSTER_NAMEé o nome do cluster; Por exemplo,my-clusterfs.gs.hierarchical.namespace.folders.enableé usado para ativar o namespace hierárquico em um bucket.fs.gs.http.read-timeouté o tempo máximo permitido, em milissegundos, para ler dados de uma conexão estabelecida. Essa configuração é opcional.
Hadoop autogerenciado
É possível ativar o conector do Cloud Storage no cluster autogerenciado do Hadoop para executar as operações da pasta.
Adicione o seguinte ao arquivo de configuração 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>Em que:
fs.gs.hierarchical.namespace.folders.enableé usado para ativar o namespace hierárquico em um bucket.fs.gs.http.read-timeouté o tempo máximo permitido, em milissegundos, para ler dados de uma conexão estabelecida. Essa configuração é opcional.
Compatibilidade com a versão 3.0.0 do conector do Cloud Storage ou versões anteriores à 2.2.23
Usar o conector do Cloud Storage versão 3.0.0 ou versões anteriores à 2.2.23 ou desativar operações de pasta para namespace hierárquico pode levar às seguintes limitações:
Renomeações ineficientes de pastas: operações de renomeação de pastas no Hadoop. ocorrem usando operações de copiar e excluir no objeto, que são mais lentas e menos eficiente do que a operação
rename folderdedicada.Acúmulo de pastas vazias: as pastas não são excluídas automaticamente, o que leva ao acúmulo de pastas vazias no bucket. O acúmulo de pastas vazias pode ter o seguinte impacto:
- Aumentar os custos de armazenamento se não forem excluídas explicitamente.
Diminuir a velocidade das operações de lista e aumentar o risco de tempos limite da operação.
Problemas de compatibilidade: misturar o uso do conector mais antigo com as versões mais recentes ou ativar e desativar operações de pastas pode levar a problemas de compatibilidade ao renomear pastas. Considere o seguinte cenário que usa uma combinação de versões do conector:
Use uma versão do conector do Cloud Storage anterior à 2.2.23 para executar as seguintes tarefas:
- Escrever objetos na pasta
foo/. - Renomear a pasta
foo/comobar/. A operação de renomeação copia e exclui os objetos emfoo/, mas não exclui a pastafoo/vazia.
- Escrever objetos na pasta
Use o conector do Cloud Storage versão 2.2.23 com as configurações de operações da pasta ativadas para renomear a pasta
bar/comofoo/.
O conector versão 2.2.23, com a operação de pasta ativada, detecta a pasta
foo/atual, causando um erro na operação de renomeação. A versão mais antiga do conector não excluiu a pastafoo/, porque a operação da pasta foi desativada.
A seguir
Faça um teste
Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho do Cloud Storage em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
Faça uma avaliação sem custo financeiro do Cloud Storage