Esta página descreve como usar contentores com o espaço de nomes hierárquico ativado para cargas de trabalho do Hadoop.
Vista geral
Quando usa um contentor do Cloud Storage com um espaço de nomes hierárquico, pode configurar o conetor do Cloud Storage para usar a operação mudar o nome da pasta para cargas de trabalho como Hadoop, Spark e Hive.
Num contentor sem espaço de nomes hierárquico, uma operação de mudança de nome no Hadoop, Spark e Hive envolve várias tarefas de cópia e eliminação de objetos, o que afeta o desempenho e a consistência. Mudar o nome de uma pasta através do conetor do Cloud Storage otimiza o desempenho e garante a consistência ao processar pastas com um grande número de objetos.
Antes de começar
Para usar funcionalidades de contentores de namespace hierárquico, use as seguintes versões do conector do Cloud Storage:
- 2.2.23 ou posterior (se estiver a usar a versão 2.x.x)
- 3.0.1 ou posterior (se estiver a usar a versão 3.x.x)
As versões mais antigas do conector (3.0.0 e anteriores a 2.2.23) têm limitações. Para mais informações sobre as limitações, consulte o artigo Compatibilidade com a versão 3.0.0 do conetor do Cloud Storage ou versões anteriores a 2.2.23.
Ative o conector do Cloud Storage num cluster
Esta secção descreve como ativar o conetor do Cloud Storage num cluster do Dataproc e num cluster do Hadoop autogerido.
Dataproc
Pode usar a Google Cloud CLI para criar um cluster do Dataproc e ativar o conetor do Cloud Storage para realizar as operações de pastas.
Crie um cluster do Dataproc com 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
Onde:
CLUSTER_NAME
é o nome do cluster. Por exemplo,my-cluster
fs.gs.hierarchical.namespace.folders.enable
é usado para ativar o espaço de nomes hierárquico num contentor.fs.gs.http.read-timeout
é o tempo máximo permitido, em milissegundos, para ler dados de uma ligação estabelecida. Esta é uma definição opcional.
Hadoop autogerido
Pode ativar o conetor do Cloud Storage no cluster Hadoop autogerido para realizar as operações de pastas.
Adicione o seguinte ao ficheiro 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>
Onde:
fs.gs.hierarchical.namespace.folders.enable
é usado para ativar o espaço de nomes hierárquico num contentorfs.gs.http.read-timeout
é o tempo máximo permitido, em milissegundos, para ler dados de uma ligação estabelecida. Esta é uma definição opcional.
Compatibilidade com a versão 3.0.0 do conector do Cloud Storage ou versões anteriores à 2.2.23
A utilização da versão 3.0.0 do conetor do Cloud Storage ou de versões anteriores à 2.2.23, ou a desativação das operações de pastas para o espaço de nomes hierárquico, pode originar as seguintes limitações:
Mudanças de nome de pastas ineficientes: as operações de mudança de nome de pastas no Hadoop ocorrem através de operações de cópia e eliminação ao nível do objeto, o que é mais lento e menos eficiente do que a operação
rename folder
dedicada.Acumulação de pastas vazias: as pastas não são eliminadas automaticamente, o que leva à acumulação de pastas vazias no seu contentor. A acumulação de pastas vazias pode ter o seguinte impacto:
- Aumentar os custos de armazenamento se não forem eliminados explicitamente.
Diminuir a velocidade das operações de listas e aumentar o risco de esgotamento do tempo limite das operações de listas.
Problemas de compatibilidade: a combinação da utilização de versões mais antigas e mais recentes do conector, ou a ativação e desativação de operações de pastas, pode originar problemas de compatibilidade ao mudar o nome das pastas. Considere o seguinte cenário que usa uma combinação de versões do conector:
Use a versão do conetor do Cloud Storage anterior à 2.2.23 para realizar as seguintes tarefas:
- Escrever objetos na pasta
foo/
. - Mude o nome da pasta
foo/
parabar/
. A operação de mudança de nome copia e elimina os objetos emfoo/
, mas não elimina a pastafoo/
vazia.
- Escrever objetos na pasta
Use a versão 2.2.23 do conetor do Cloud Storage com as definições de operações de pastas ativadas para mudar o nome da pasta
bar/
parafoo/
.
A versão 2.2.23 do conector, com a operação de pasta ativada, deteta a pasta
foo/
existente, o que faz com que a operação de mudança do nome falhe. A versão mais antiga do conetor não eliminou a pastafoo/
porque a operação da pasta estava desativada.
O que se segue?
Experimente
Se está a usar o Google Cloud pela primeira vez, crie uma conta para avaliar o desempenho do Cloud Storage em cenários reais. Os novos clientes também recebem 300 USD em créditos gratuitos para executar, testar e implementar cargas de trabalho.
Experimentar o Cloud Storage gratuitamente