O modo de cache do JindoFS armazena arquivos como objetos no Object Storage Service (OSS) e os mantém em cache localmente no cluster E-MapReduce com base nos padrões de acesso. Esse recurso melhora a eficiência do acesso aos dados, preserva a semântica de objetos do OSS e garante total compatibilidade com outros clientes OSS.
Informações básicas
O modo de cache preserva a semântica original dos objetos OSS. Assim, é possível usar o JindoFS sem migrar ou converter dados existentes. O cache local do cluster melhora o desempenho do acesso aos dados e reduz o consumo de largura de banda nas operações de leitura e escrita no OSS.
Configuração
O modo de cache do JindoFS oferece dois métodos de configuração:
-
Esquema OSS
Para mais informações, consulte Configure the OSS scheme (recommended).
-
Esquema JFS
Para mais informações, consulte Configure the JFS scheme.
Esquema OSS (recomendado)
O esquema OSS utiliza o formato de caminho padrão oss://<bucket_name>/<path_of_your_file>. Ele funciona imediatamente após a criação do cluster E-MapReduce, sem necessidade de configuração adicional. Jobs existentes que leem ou escrevem no OSS são executados sem modificações.
Esquema JFS
-
Acesse o service SmartData.
Faça login no EMR console.
Na barra de navegação superior, selecione uma região e um grupo de recursos conforme necessário.
Clique na aba Clusters.
Na página Clusters, localize o cluster e clique em Details na coluna Actions.
No painel de navegação à esquerda, escolha Services > SmartData.
-
Acesse a página de configuração do service bigboot.
Clique na aba Configure.
Clique em bigboot .
-
Configure os seguintes parâmetros.
O JindoFS oferece suporte a múltiplos namespaces. Este tópico usa
test
como exemplo de namespace.
-
Defina jfs.namespaces como test.
test
é um nome de namespace de exemplo. Para configurar múltiplos namespaces, separe os nomes por vírgulas (,).
-
Clique em Custom Configuration. Na caixa de diálogo Add Configuration Item, adicione os seguintes parâmetros.
Parameter Description Example jfs.namespaces.test.oss.uri O backend de armazenamento do namespace test.oss://<oss_bucket>/<oss_dir>/ Nota Defina este parâmetro como um diretório específico em um bucket OSS ou como o diretório raiz.jfs.namespaces.test.mode Define que o namespace testutiliza o modo de cache.cache
-
No canto superior direito, clique em Save.
-
No canto superior direito, escolha .
Após a reinicialização, acesse os arquivos pelo formato de caminho
jfs://test/<path_to_your_file>
. Os arquivos nesse namespace são organizados com base no diretório raiz especificado em
jfs.namespaces.test.oss.uri
. Por exemplo,
jfs://test/hello.txt
corresponde ao objeto OSS real em
oss://<oss_bucket>/<oss_dir>/hello.txt
.
Ativar cache
O JindoFS pode usar discos locais para armazenar em cache blocos de dados acessados frequentemente. O cache vem desativado por padrão, e todas as operações de leitura acessam o OSS diretamente.
Na aba Configure do service Services > SmartData, clique na aba client.
-
Defina o parâmetro jfs.cache.data-cache.enable como 1 para ativar o cache.
Esta é uma configuração do lado do cliente e não exige a reinicialização do service SmartData.
Depois de ativar o cache, o service Jindo gerencia automaticamente o cache local e remove dados com base na marca d'água configurada. Configure a proporção de armazenamento conforme suas necessidades. Para mais informações, consulte Control disk space by using watermarks.
Controle de marca d'água de espaço em disco
O JindoFS utiliza o OSS como backend de armazenamento, o que fornece vasta capacidade de armazenamento. No entanto, o espaço em disco local no cluster é finito. Para gerenciar esse espaço, o JindoFS remove automaticamente dados frios do cache local. É possível controlar esse comportamento de remoção com os parâmetros storage.watermark.high.ratio e storage.watermark.low.ratio. Esses parâmetros aceitam valores decimais entre 0 e 1 que representam a proporção de espaço em disco utilizado.
-
Configure as marcas d'água do disco.
Na seção
Service Configuration
, clique na aba
storage
e modifique os seguintes parâmetros.
Parameter
Description
storage.watermark.high.ratio
Marca d'água alta para uso de disco. Quando o espaço em disco usado pelo diretório de dados do JindoFS em um disco de dados atinge essa proporção, o JindoFS aciona um processo de limpeza. Valor padrão: 0,4.
storage.watermark.low.ratio
Marca d'água baixa para uso de disco. Após o acionamento do processo de limpeza, o JindoFS exclui dados frios até que o espaço em disco usado pelo diretório de dados do JindoFS caia para essa proporção. Valor padrão: 0,2.
NotaDefina a marca d'água alta para controlar a quantidade de espaço em disco alocada ao JindoFS. A marca d'água baixa deve ser menor que a marca d'água alta. Defina valores adequados para sua carga de trabalho.
-
Salve a configuração.
No canto superior direito, clique em Save.
Na caixa de diálogo Confirm, insira um motivo para a alteração e ative Auto-update Configuration.
Clique em OK.
-
Reinicie o Jindo Storage Service para aplicar as alterações.
No canto superior direito, escolha .
Na caixa de diálogo Cluster Activities, defina os parâmetros necessários e clique em OK.
Na caixa de diálogo Confirm, clique em OK.
Acessar buckets OSS
Por padrão, o JindoFS fornece acesso sem credenciais a buckets OSS na mesma região e conta Alibaba Cloud do cluster E-MapReduce, sem necessidade de configuração de AccessKey. Para acessar buckets em outras regiões ou contas, configure o AccessKey ID, o AccessKey Secret e o endpoint. O método de configuração depende do esquema utilizado.
-
Esquema OSS
Na aba Configure do service Services > SmartData, clique na aba smartdata-site.
-
Clique em Custom Configuration. Na caixa de diálogo Add Configuration Item, adicione os seguintes parâmetros e clique em OK.
Parameter
Description
fs.jfs.cache.oss-accessKeyId
AccessKey ID do backend de armazenamento OSS.
fs.jfs.cache.oss-accessKeySecret
AccessKey Secret do backend de armazenamento OSS.
fs.jfs.cache.oss-endpoint
Endpoint do backend de armazenamento OSS.
-
Esquema JFS
Na aba Configure do service Services > SmartData, clique na aba bigboot.
Defina o parâmetro jfs.namespaces como test.
-
Clique em Custom Configuration. Na caixa de diálogo Add Configuration Item, adicione os seguintes parâmetros e clique em OK.
Parameter
Description
jfs.namespaces.test.oss.uri
Backend de armazenamento do namespace
test. Exemplo: oss://<oss_bucket.endpoint>/<oss_dir>.O endpoint é especificado diretamente na URI.
jfs.namespaces.test.oss.access.key
AccessKey ID do backend de armazenamento OSS.
jfs.namespaces.test.oss.access.secret
AccessKey Secret do backend de armazenamento OSS.
Configurações avançadas
Essas configurações do lado do cliente entram em vigor sem a necessidade de reiniciar o service SmartData.
-
Na seção Service Configuration, na aba client, configure os seguintes parâmetros.
Parameter
Description
client.oss.upload.threads
Número de threads de upload OSS para cada fluxo de escrita de arquivo. Padrão: 4.
client.oss.upload.max.parallelism
Número máximo de uploads OSS simultâneos por processo. Limita o consumo de largura de banda e memória das threads de upload. Padrão: 16.
-
Na seção Service Configuration, na aba smartdata-site, configure os seguintes parâmetros.
Parameter Description fs.jfs.cache.copy.simple.max.byte Tamanho máximo de arquivo para cópia padrão durante uma renomeação. Arquivos abaixo desse limiar usam a interface de cópia padrão; arquivos maiores usam a interface de cópia multipart para melhor eficiência. Nota Se o recurso de cópia rápida do OSS estiver ativado, defina este parâmetro como -1 para usar a interface de cópia padrão para todos os tamanhos de arquivo e aproveitar a cópia rápida para obter desempenho ideal de renomeação.fs.jfs.cache.write.buffer.size Tamanho do buffer para fluxos de escrita de arquivo. Deve ser uma potência de dois, até 8 MB. Reduza este valor se fluxos de escrita simultâneos causarem alto uso de memória. Padrão: 1048576. fs.oss.committer.magic.enabled Ativa o Jindo Job Committer, que melhora o desempenho ao evitar operações de renomeação durante a fase de commit do job. Padrão: true. Nota Sistemas de armazenamento de objetos como o OSS têm baixo desempenho durante operações de renomeação. O Jindo Job Committer resolve isso no modo de cache.