Este tópico descreve como utilizar o JindoCache para acelerar jobs que acessam o OSS-HDFS. O JindoCache aproveita os recursos de armazenamento do seu cluster para oferecer cache transparente de arquivos do OSS-HDFS, melhorando a performance de acesso aos dados.
Pré-requisitos
Crie um cluster e selecione o service JindoCache. Para mais informações, consulte Crie um cluster.
Ative o OSS-HDFS e conceda as permissões necessárias. Para mais informações, consulte Ative o OSS-HDFS.
Procedimento
-
Defina uma política de cache.
O JindoCache utiliza CacheSets para gerenciar políticas de cache. Defina um ou mais CacheSets para aplicar políticas diferentes a caminhos distintos.
Faça login no cluster. Para mais informações, consulte Log on to a cluster.
-
Crie um arquivo
cacheset.xml.Neste exemplo, o arquivo
cacheset.xmlestá localizado no diretório/path.<?xml version="1.0" encoding="UTF-8"?> <cachesets> <cacheset> <name>name1</name> <path>oss://emr-test/dir1</path> <cacheStrategy>DISTRIBUTED</cacheStrategy> <metaPolicy> <type>ALWAYS</type> </metaPolicy> <readPolicy>CACHE_ASIDE</readPolicy> <writePolicy>WRITE_AROUND</writePolicy> </cacheset> <cacheset> <name>name2</name> <path>oss://emr-test/dir2</path> <cacheStrategy>DHT</cacheStrategy> <metaPolicy> <type>ONCE</type> </metaPolicy> <readPolicy>CACHE_ASIDE</readPolicy> <writePolicy>WRITE_AROUND</writePolicy> </cacheset> </cachesets>Parâmetro
Descrição
Exemplo
name
Nome do CacheSet. Deve ser único. Um nome duplicado sobrescreve o CacheSet existente.
name1
path
Caminho pai da política. A política definida neste CacheSet se aplica a todos os seus subcaminhos.
oss://emr-test/dir1
cacheStrategy
Política de cache. Os valores válidos são
DISTRIBUTEDeDHT(Distributed Hash Table). A estratégiaDHTé ideal para acelerar o acesso de somente leitura a arquivos pequenos.DISTRIBUTED
metaPolicy
Política de cache de metadados. Os valores válidos são
ALWAYSeONCE.-
ALWAYS: Não armazena metadados em cache. Todas as operações de metadados leem diretamente da source remota. -
ONCE: Armazena metadados em cache. Após a leitura inicial da source remota, as solicitações subsequentes de metadados são atendidas pelo cache local.
NotaSe
cacheStrategyestiver definido comoDHT,metaPolicydeve ser configurado comoONCE.ALWAYS
readPolicy
Política de leitura. Atualmente, apenas
CACHE_ASIDEé suportado, o que significa que os dados são lidos primeiro do cache.CACHE_ASIDE
writePolicy
Política de escrita. Os valores suportados incluem:
-
WRITE_AROUND: Escreve dados diretamente no armazenamento remoto, ignorando o cache. -
CACHE_ONLY: Escreve dados apenas no cache.NotaAo usar a política
CACHE_ONLY, também é necessário definirmetaPolicycomoONCE. -
WRITE_THROUGH: Escreve dados tanto no cache quanto no armazenamento remoto.
WRITE_AROUND
-
-
Execute o comando a seguir para atualizar os CacheSets no sistema JindoCache.
jindocache -refreshCacheSet -path /path/cacheset.xmlSe o comando for bem-sucedido, a saída incluirá a mensagem
Successfully refresh cacheset !!!. Para mais informações sobre comandos do JindoCache, consulte JindoCache CLI User Guide. -
Utilize o comando
listCacheSetpara visualizar informações sobre os CacheSets no sistema.jindocache -listCacheSet
-
Configure o JindoSDK.
Configure a classe de implementação do JindoCache para OSS-HDFS no Hadoop-Common. No console EMR, acesse a página de configuração do service Hadoop-Common, selecione a aba core-site.xml e modifique o item de configuração. Para etapas detalhadas, consulte Gerencie itens de configuração.
Parâmetro
Descrição
fs.xengine
O valor deve ser jindocache.
Se este parâmetro ficar vazio, o cliente não usa o cache e se comunica diretamente com o backend.
NotaEsta é uma configuração do lado do cliente. Não é necessário reiniciar o service JindoCache.
Após concluir essas configurações, os jobs que acessam o OSS-HDFS podem usar o recurso de cache. O JindoCache fornece cache transparente, portanto, não é preciso modificar seus jobs. Quando um job lê dados do OSS-HDFS, os dados são automaticamente armazenados em cache no sistema JindoCache. Solicitações subsequentes para os mesmos dados são atendidas pelo cache, melhorando a performance de leitura.
FAQ
Configurar um AccessKey para OSS-HDFS
O JindoCache suporta acesso ao OSS-HDFS sem credenciais. No entanto, se você precisar acessar o OSS-HDFS entre contas diferentes, configure as credenciais, incluindo AccessKey ID, AccessKey secret e endpoint.
-
Acesse a aba common do service JindoCache.
Faça login no console E-MapReduce.
Na barra de navegação superior, selecione uma região e um grupo de recursos conforme necessário.
Na página Clusters, localize o cluster desejado e clique em Services na coluna Actions.
Na seção do service JindoCache, clique em Configure.
Clique na aba common.
-
Adicione e aplique os itens de configuração.
Clique em Add Configuration Item.
-
Na caixa de diálogo Add Configuration Item, adicione os seguintes itens de configuração.
Para etapas detalhadas, consulte Gerencie itens de configuração.
NotaSubstitua
YYYpelo nome do seu bucket OSS-HDFS.Parâmetro
Descrição
jindocache.oss.bucket.YYY.accessKeyId
O AccessKey ID para acesso ao OSS-HDFS.
jindocache.oss.bucket.YYY.accessKeySecret
O AccessKey secret para acesso ao OSS-HDFS.
jindocache.oss.bucket.YYY.endpoint
O endpoint para OSS-HDFS. Exemplo:
cn-hangzhou.oss-dls.aliyuncs.com.jindocache.oss.bucket.YYY.data.lake.storage.enable
O valor deve ser
true.