Nesta página, descrevemos como usar buckets ativados por namespace hierárquico para cargas de trabalho do Hadoop.
Visão geral
Ao usar um bucket do Cloud Storage com namespace hierárquico, é possível configurar o conector do Cloud Storage para usar a operação renomear pasta em cargas de trabalho como Hadoop, Spark e Hive.
Em um bucket sem namespace hierárquico, uma operação de renomeação no Hadoop, Spark e Hive envolve vários jobs de cópia e exclusão de objetos, impactando no desempenho e na consistência. Renomear uma pasta usando o Cloud Storage otimiza o desempenho e garante consistência ao lidar com pastas com um grande número de objetos.
Dataproc
É possível usar a CLI do Google Cloud para criar um cluster do Dataproc e permitir que o conector do Cloud Storage execute as operações da pasta.
Instale ou atualize o conector do Cloud Storage versão 2.2.23 ou posterior (exceto a versão 3.0.0).
Crie um cluster do Dataproc 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-cluster
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.
Hadoop autogerenciado
É possível ativar o conector do Cloud Storage no cluster autogerenciado do Hadoop para executar as operações da pasta.
Instale ou atualize o conector do Cloud Storage versão 2.2.23 ou posterior (exceto a versão 3.0.0).
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 folder
dedicada.Acúmulo de pastas vazias: os recursos de pasta não são excluídos. 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 gratuita do Cloud Storage