Use contentores com espaço de nomes hierárquico ativado para cargas de trabalho do Hadoop

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.

  1. 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.

  1. 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 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.

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:

    1. Use a versão do conetor do Cloud Storage anterior à 2.2.23 para realizar as seguintes tarefas:

      1. Escrever objetos na pasta foo/.
      2. Mude o nome da pasta foo/ para bar/. A operação de mudança de nome copia e elimina os objetos em foo/, mas não elimina a pasta foo/ vazia.
    2. 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/ para foo/.

    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 pasta foo/ 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