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 dehdfs://
. - 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:
- 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; - 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
Fazer o download do conector
Para fazer o download do conector do Cloud Storage para Hadoop:
- versão mais recente, localizada no bucket do Cloud Storage, não recomendada para uso em produção:
- versão específica do bucket do Cloud Storage, substituindo as versões dos conectores do Hadoop e do Cloud Storage no padrão de nome
gcs-connector-HADOOP_VERSION-CONNECTOR_VERSION.jar
:- Exemplo:
gs://hadoop-lib/gcs/gcs-connector-hadoop2-2.1.1.jar
- Exemplo:
- versão específica
do
repositório do Apache Maven
(faça o download de um jar sombreado que tenha o sufixo
-shaded
no nome).
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:
- Em um aplicativo Spark ou PySpark ou Hadoop usando o prefixo
gs://
. - O shell do hadoop:
hadoop fs -ls gs://bucket/dir/file
. - O navegador do Cloud Storage do console do Google Cloud.
- Usando os comandos
gsutil cp
ougsutil rsync
.
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
- Saiba mais sobre o Cloud Storage