Conector do Cloud Storage

O conector do Cloud Storage é uma biblioteca Java de código aberto que permite executar os jobs do Apache Hadoop ou do Apache Spark diretamente em dados no Cloud Storage e oferece um número de benefícios em relação à escolha do Hadoop Distributed File System (HDFS).

Benefícios do conector do Cloud Storage

  • Acesso direto a dados: armazene seus dados no Cloud Storage e acesse-os diretamente. Não é necessário transferi-lo antes para o HDFS.
  • Compatibilidade com HDFS: você pode acessar facilmente seus dados no Cloud Storage usando o prefixo gs:// em vez de hdfs://.
  • Interoperabilidade: armazenar dados no Cloud Storage permite interoperabilidade ininterrupta entre os serviços do Spark, do Hadoop e outros do Google.
  • Acessibilidade de dados: ao encerrar um cluster do Hadoop, ao contrário do HDFS, você continua tendo acesso aos seus dados no Cloud Storage.
  • Alta disponibilidade de dados: dados armazenados no Cloud Storage estão amplamente disponíveis e são replicados globalmente sem perda de desempenho.
  • Não há sobrecarga de gerenciamento de armazenamento: diferentemente do HDFS, o Cloud Storage não exige uma rotina de manutenção, como verificação do sistema de arquivos, upgrade ou downgrade para versões anteriores do sistema de arquivos.
  • Inicialização rápida: no HDFS, um job do MapReduce não pode iniciar até que o NameNode esteja fora do modo de segurança, um processo que pode levar de alguns segundos ou muitos minutos, dependendo do tamanho e do estado dos seus dados. Com o Cloud Storage, inicie o job assim que os nós de tarefa começarem, o que gera uma economia significativa no longo prazo.

Configuração do conector do Cloud Storage do cluster do Dataproc

O conector do Cloud Storage é instalado por padrão em todos os nós do cluster do Dataproc no diretório /usr/local/share/google/dataproc/lib/.

Nas seções a seguir, descrevemos as etapas para configurar o conector no cluster do Dataproc.

Permissões da conta de serviço

Ao executar o conector dentro das VMs do Compute Engine, incluindo clusters do Dataproc, a propriedade google.cloud.auth.service.account.enable é definida como false por padrão, o que significa que não é preciso configurar manualmente uma conta de serviço para o conector. Ele recebe as credenciais da conta de serviço do servidor de metadados da VM.

Versões de conectores não padrão

As versões padrão do conector do Cloud Storage usadas nas imagens mais recentes instaladas nos clusters do Dataproc são listadas nas páginas de versão da imagem do cluster. Consulte Versões compatíveis do Dataproc. Se o aplicativo depender de uma versão de conector não padrão implantada no cluster, faça o seguinte:

  1. criar um cluster com a sinalização --metadata=GCS_CONNECTOR_VERSION=x.y.z, que atualiza o conector usado pelos aplicativos em execução no cluster para a versão especificada do conector;
  2. incluir e realocar as classes do conector e as dependências do conector da versão que você está usando no jar do aplicativo; A realocação é necessária para evitar um conflito entre a versão do conector implantada e a versão do conector padrão instalada no cluster do Dataproc. Consulte o exemplo de realocação de dependências do Maven.

Clusters que não são do Dataproc

  1. Fazer o download do conector

    Para fazer o download do conector do Cloud Storage para Hadoop:

  2. Instalar o conector.

    Consulte Como instalar o conector (em inglês) no GitHub para saber como instalar, configurar e testar o conector do Cloud Storage.

Usar o conector

Há várias maneiras de acessar dados armazenados no Cloud Storage:

Recursos

Versão do Java

O conector do Cloud Storage requer o Java 8.

Informações de dependências do Apache Maven

<dependency>
    <groupId>com.google.cloud.bigdataoss</groupId>
    <artifactId>gcs-connector</artifactId>
    <version>insert "hadoopX-X.X.X" connector version number here</version>
    <scope>provided</scope>
</dependency>

ou para a versão sombreada:

<dependency>
    <groupId>com.google.cloud.bigdataoss</groupId>
    <artifactId>gcs-connector</artifactId>
    <version>insert "hadoopX-X.X.X" connector version number here</version>
    <scope>provided</scope>
    <classifier>shaded</classifier>
</dependency>

Para saber informações mais detalhadas, consulte as Notas de lançamento do conector do Cloud Storage e a referência do Javadoc.

A seguir