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, você pode 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.
Métodos de configuração
O JindoFS em modo de cache oferece dois métodos de configuração para diferentes casos de uso.
-
OSS Scheme
Para mais informações, consulte Configure the OSS scheme (recommended).
-
JFS Scheme
Para mais informações, consulte Configure the JFS scheme.
OSS scheme (recomendado)
O OSS scheme 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.
JFS scheme
-
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 em 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 aba namespace do service SmartData.
Clique em na aba Configure.
-
Clique em na aba namespace na seção Service Configuration.

-
Configure os seguintes parâmetros.
O JindoFS suporta 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 vários 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 Especifica que o namespace testusa o modo de cache.cache
-
No canto superior direito, clique em Save.
-
No canto superior direito, escolha .
Após a reinicialização do service, acesse os arquivos no JindoFS pelo caminho
jfs://test/<path_of_file>
.
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 em 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.
Controlar o uso de espaço em disco
O JindoFS utiliza o OSS como backend de armazenamento, o que oferece vasta capacidade. 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. Controle 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 do espaço em disco utilizado.
-
Modifique as configurações de uso de disco.
Na seção
Service Configuration
do service SmartData, clique em na aba
storage
e configure os parâmetros descritos na tabela a seguir.

Parameter
Description
storage.watermark.high.ratio
Limite superior de uso do disco. Quando o uso do disco pelos dados do JindoFS excede esse limite, o sistema exclui dados automaticamente. Valor padrão: 0,4.
storage.watermark.low.ratio
Limite inferior de uso do disco. Após o acionamento da exclusão automática, o JindoFS começa a remover dados até que o uso do disco atinja este limite. Valor padrão: 0,2.
NotaConfigure os limites superior e inferior para ajustar o espaço em disco atribuído ao JindoFS. Certifique-se de que o limite superior seja maior que o limite inferior.
-
Salve as configurações.
No canto superior direito da seção Service Configuration, clique em Save.
Na caixa de diálogo Confirm Changes, especifique a Description e ative a opção Auto-update Configuration.
Clique em OK.
-
Reinicie o Jindo Storage Service para aplicar as configurações.
Selecione Restart Jindo Storage Service na lista suspensa no canto superior direito.
Na caixa de diálogo Cluster Activities, especifique os parâmetros relacionados.
Clique em OK.
Na mensagem Confirm, clique em OK.
Acessar um bucket 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 exigir configuração de AccessKey. Para acessar buckets em outras regiões ou contas, configure o AccessKeyID, AccessKeySecret e endpoint. O método de configuração depende do scheme utilizado.
-
OSS scheme
Na aba Configure do service Services > SmartData, clique em 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
O AccessKeyID do backend de armazenamento OSS.
fs.jfs.cache.oss-accessKeySecret
O AccessKeySecret do backend de armazenamento OSS.
fs.jfs.cache.oss-endpoint
O endpoint do backend de armazenamento OSS.
-
JFS scheme
Na aba Configure do service Services > SmartData, clique em 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
AccessKeyID do backend de armazenamento OSS.
jfs.namespaces.test.oss.access.secret
AccessKeySecret do backend de armazenamento OSS.
-
OSS Scheme
Para mais informações, consulte Configure OSS Scheme (recommended).
-
JFS Scheme
Para mais informações, consulte Configure JFS Scheme.
Configurações avançadas
Estas 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 gravação 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 pelas 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 utilizam a interface de cópia multipart para melhor eficiência. Nota Se você ativou o recurso de cópia rápida do OSS, defina este parâmetro como -1 para usar a interface de cópia padrão para todos os tamanhos de arquivo, aproveitando a cópia rápida para obter desempenho ideal na renomeação.fs.jfs.cache.write.buffer.size Tamanho do buffer para fluxos de gravação de arquivos. Deve ser uma potência de dois, até 8 MB. Reduza este valor se fluxos de gravação 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 em operações de renomeação. O Jindo Job Committer resolve isso no modo de cache.