No modo cache, o JindoFS armazena dados como objetos no Object Storage Service (OSS) e armazena em cache os dados acessados com frequência nos discos locais do cluster EMR. Isso acelera o desempenho de leitura/gravação e reduz o uso de largura de banda sem exigir migração de dados ou conversão de formato — os clientes e jobs OSS existentes continuam funcionando normalmente.
Como funciona
O modo cache do JindoFS usa o OSS como backend de armazenamento. Quando um job lê dados, o JindoFS verifica se os dados já estão em cache nos discos locais do cluster. Se estiverem, os dados são servidos a partir do disco local (mais rápido). Se não, o JindoFS os busca no OSS e, opcionalmente, os armazena em cache para leituras futuras.
Quando o uso do disco local excede o nível máximo configurado, o JindoFS exclui automaticamente os dados frios dos discos locais.
Pré-requisitos
Antes de começar, verifique se você tem:
Um cluster EMR com o serviço SmartData ativado
Acesso ao console EMR da Alibaba Cloud
Escolha um método de acesso
O modo cache suporta duas formas de acessar arquivos no OSS:
| Método | Formato do caminho | Quando usar |
|---|---|---|
| OSS Scheme (recomendado) | oss://<bucket_name>/<path> | Padrão para todos os jobs novos e existentes. Nenhuma configuração adicional é necessária após a criação do cluster. |
| JFS Scheme | jfs://test/<path> | Quando você precisa de um namespace nativo do JindoFS com backend OSS e configuração de credenciais por namespace. |
Use o OSS Scheme, a menos que você tenha um motivo específico para usar o JFS Scheme. Os jobs existentes que leem e gravam dados no OSS continuam funcionando sem alterações de configuração.
Configurar o JFS Scheme (opcional)
Ignore esta seção se estiver usando o OSS Scheme.
Abra o serviço SmartData no console EMR.
Faça login no console EMR da Alibaba Cloud.
Na barra de navegação superior, selecione a região onde o cluster reside. Selecione um grupo de recursos, se necessário.
Clique na aba Cluster Management.
Localize o cluster e clique em Details na coluna Actions.
No painel de navegação à esquerda, clique em Cluster Service > SmartData.
Acesse a configuração do namespace.
Clique na aba Configure.
Na seção Service Configuration, clique na aba namespace.

Configure os parâmetros do namespace. Defina
jfs.namespacescom o nome do namespace. Este exemplo usatest. Para configurar múltiplos namespaces, separe-os com vírgulas (,). Clique em Custom Configuration. Na caixa de diálogo Add Configuration Item, configure os parâmetros a seguir e clique em OK.Parâmetro Descrição Exemplo jfs.namespaces.test.oss.uriO backend OSS do namespace test. Defina como um diretório OSS específico ou a raiz de um bucket OSS.oss://<oss_bucket>/<oss_dir>/jfs.namespaces.test.modeO modo de armazenamento. Defina como cachepara o modo cache.cacheNo canto superior direito da seção Service Configuration, clique em Save.
Na lista suspensa Actions, selecione Restart Jindo Namespace Service.
Após o Namespace Service reiniciar, acesse os arquivos usando jfs://test/<path_of_file>.
Ativar o cache local (opcional)
Por padrão, o cache local está desativado e o EMR lê os dados diretamente do OSS. Ative o cache local para armazenar dados quentes nos discos locais do cluster, o que reduz significativamente a latência para leituras repetidas.
No painel de navegação à esquerda, clique em Cluster Service > SmartData. Na página SMARTDATA, clique na aba Configure. Na seção Service Configuration, clique na aba client.
Defina
jfs.cache.data-cache.enablecomo1.
A alteração entra em vigor imediatamente no cliente — não é necessário reiniciar o serviço SmartData.
Após ativar o cache local, o Jindo gerencia automaticamente os dados em cache com base nos níveis máximo e mínimo configurados em Controlar o uso do espaço em disco.
Controlar o uso do espaço em disco
O JindoFS exclui automaticamente os dados frios dos discos locais quando o uso do disco atinge o nível máximo, e para de excluir quando o uso cai para o nível mínimo. Ambos os parâmetros aceitam valores decimais entre 0 e 1.
Ajuste esses níveis com base na carga de trabalho:
Aumente o nível máximo se o conjunto de dados de trabalho for grande e você quiser armazenar mais dados em cache para maximizar as taxas de acerto.
Diminua o nível máximo se precisar reservar mais espaço em disco local para tarefas de computação.
O nível máximo deve ser maior que o nível mínimo.
Na seção Service Configuration para o serviço SmartData, clique na aba storage e configure os parâmetros a seguir.
Parâmetro Descrição Padrão storage.watermark.high.ratioLimite superior de uso do disco. Quando os dados do JindoFS excederem essa proporção, os dados frios serão automaticamente excluídos dos discos locais. 0.4storage.watermark.low.ratioAlvo inferior de uso do disco. Após o início da exclusão, o JindoFS remove os dados frios até que o uso do disco caia para essa proporção. 0.2
Salve a configuração.
No canto superior direito da seção Service Configuration, clique em Save.
Na caixa de diálogo Confirm Changes, preencha o campo Description e ative o Auto-update Configuration.
Clique em OK.
Reinicie o Jindo Storage Service para aplicar as alterações.
Na lista suspensa Actions, selecione Restart Jindo Storage Service.
Na caixa de diálogo Cluster Activities, configure os parâmetros e clique em OK.
Na mensagem de confirmação, clique em OK.
Acessar um bucket OSS em uma conta ou região diferente
Se o bucket OSS e o cluster EMR estiverem na mesma conta da Alibaba Cloud e na mesma região, nenhuma configuração adicional de credenciais é necessária.
Se o bucket estiver em uma conta ou região diferente, configure o par de AccessKey e o endpoint com base no método de acesso.
OSS Scheme
No painel de navegação à esquerda, clique em Cluster Service > SmartData. Na página SMARTDATA, clique na aba Configure. Na seção Service Configuration, clique na aba smartdata-site.
Clique em Custom Configuration. Na caixa de diálogo Add Configuration Item, configure os parâmetros a seguir e clique em OK.
Parâmetro Descrição fs.jfs.cache.oss-accessKeyIdO AccessKey ID do bucket OSS. fs.jfs.cache.oss-accessKeySecretO AccessKey secret do bucket OSS. fs.jfs.cache.oss-endpointO endpoint do bucket OSS.
JFS Scheme
No painel de navegação à esquerda, clique em Cluster Service > SmartData. Na página SMARTDATA, clique na aba Configure. Na seção Service Configuration, clique na aba namespace.
Defina
jfs.namespacescomotest.Clique em Custom Configuration. Na caixa de diálogo Add Configuration Item, configure os parâmetros a seguir e clique em OK.
Parâmetro Descrição jfs.namespaces.test.oss.uriO backend OSS do namespace test, com o endpoint incluído no URI. Exemplo:oss://<oss_bucket.endpoint>/<oss_dir>.jfs.namespaces.test.oss.access.keyO AccessKey ID do bucket OSS. jfs.namespaces.test.oss.access.secretO AccessKey secret do bucket OSS.
Configuração avançada
Esses parâmetros ajustam a taxa de transferência de upload e o comportamento do cache. Todas as alterações entram em vigor imediatamente no cliente — não é necessário reiniciar o serviço SmartData.
Desempenho de upload (aba client)
Na seção Service Configuration, clique na aba client e configure os parâmetros a seguir.
| Parâmetro | Descrição | Padrão |
|---|---|---|
client.oss.upload.threads | Número de threads de upload OSS por fluxo de gravação. | 4 |
client.oss.upload.max.parallelism | Máximo de threads de upload OSS simultâneas por processo. Limita o uso total de largura de banda e memória em uploads. | 16 |
Comportamento de cache e renomeação (aba smartdata-site)
Na seção Service Configuration, clique na aba smartdata-site e configure os parâmetros a seguir.
| Parâmetro | Descrição | Padrão |
|---|---|---|
fs.jfs.cache.copy.simple.max.byte | Limite de tamanho de arquivo para operações de renomeação. Arquivos menores que este limite usam a interface de cópia padrão; arquivos maiores usam o Multipart Copy para melhor desempenho. Se o recurso de cópia rápida do OSS estiver ativado, defina como -1 para que todos os arquivos usem a interface de cópia padrão, obtendo o melhor desempenho de renomeação. | — |
fs.jfs.cache.write.buffer.size | Tamanho do buffer do fluxo de gravação em bytes. Deve ser uma potência de 2, com máximo de 8388608 (8 MB). Reduza esse valor se os fluxos de gravação consumirem memória excessiva. | 1048576 |
fs.oss.committer.magic.enabled | Ativa o Jindo Job Committer, que confirma jobs sem operações de renomeação e melhora o desempenho de confirmação. No modo cache, o desempenho de renomeação está abaixo do padrão, portanto esta opção é recomendada. | true |