Nesta página, descrevemos como usar o Cloud Storage FUSE com o Dataflow para processar conjuntos de dados em tarefas de machine learning (ML).
Ao trabalhar com tarefas de ML, o Dataflow pode ser usado para processar grandes conjuntos de dados. No entanto, algumas bibliotecas de software comuns usadas para ML, como o OpenCV, têm requisitos de arquivo de entrada. Eles geralmente exigem que os arquivos sejam acessados como se estivessem armazenados no disco rígido de um computador local, em vez de um armazenamento baseado na nuvem. Esse requisito cria dificuldades e atrasos. Como solução, os pipelines podem usar conectores especiais de E/S para entrada ou baixar arquivos nas máquinas virtuais (VMs) do Dataflow antes do processamento. Essas soluções costumam ser ineficientes.
O Cloud Storage FUSE oferece uma maneira de evitar essas soluções ineficientes. Com o Cloud Storage FUSE, é possível ativar seus buckets do Cloud Storage nas VMs do Dataflow. Assim, os arquivos no Cloud Storage aparecem como se fossem locais. Como resultado, o software de ML pode acessar os dados diretamente sem precisar fazer o download deles antes.
Vantagens
O uso do Cloud Storage FUSE para tarefas de ML oferece os seguintes benefícios:
- Os arquivos de entrada hospedados no Cloud Storage podem ser acessados na VM do Dataflow usando a semântica do sistema de arquivos local.
- Como os dados são acessados sob demanda, não é necessário fazer o download dos arquivos de entrada antecipadamente.
Suporte e limitações
- Para usar o Cloud Storage FUSE com o Dataflow, configure as VMs de worker com endereços IP externos para que atendam aos requisitos de acesso à Internet.
Especificar buckets para usar com o Cloud Storage FUSE
Para especificar um bucket do Cloud Storage a ser ativado em uma VM, use a flag
--experiments
. Para especificar vários buckets, use um delimitador de ponto e vírgula (;
) entre os nomes.
O formato é o seguinte:
--experiments="gcsfuse_buckets=CONFIG"
Substitua:
CONFIG
: uma lista delimitada por ponto e vírgula de entradas do Cloud Storage, em que cada entrada é uma das seguintes opções:BUCKET_NAME
: o nome de um bucket do Cloud Storage. Por exemplo,dataflow-samples
. Se você omitir o modo, o bucket será tratado como somente leitura.BUCKET_NAME:MODE
: um nome de bucket do Cloud Storage e o modo associado, em queMODE
éro
(somente leitura) ourw
(leitura e gravação).Exemplo:
--experiments="gcsfuse_buckets=read-bucket1;read-bucket2:ro;write-bucket1:rw"
Neste exemplo, especificar o modo garante o seguinte:
gs://read-bucket1
está ativado no modo somente leitura.gs://read-bucket2
está ativado no modo somente leitura.gs://write-bucket1
é ativado no modo de leitura e gravação.
O código do pipeline do Beam pode acessar esses intervalos em
/var/opt/google/gcs/BUCKET_NAME
.