Leituras repetidas do OSS-HDFS geram I/O remoto a cada acesso, o que aumenta a latência dos jobs. O JindoCache armazena objetos do OSS-HDFS no armazenamento do cluster EMR para que leituras subsequentes usem o cache local. Após a primeira leitura, os dados ficam em cache automaticamente — os jobs Hadoop acessam o OSS-HDFS sem alterações na configuração.
Pré-requisitos
Antes de começar, verifique se você tem:
Um cluster EMR com o JindoCache selecionado durante a criação. Para mais informações, consulte Crie um cluster.
OSS-HDFS ativado e permissões de acesso concedidas. Para mais informações, consulte Ativar o OSS-HDFS e conceder permissões de acesso.
Como funciona o cache
O JindoCache usa CacheSets para aplicar políticas de cache a caminhos específicos do OSS. Cada CacheSet direciona um caminho pai e controla o tratamento de metadados, leituras e gravações de todos os dados nesse caminho. Defina um ou mais CacheSets, cada um com uma política diferente, para adequar-se aos padrões de acesso de diferentes conjuntos de dados.
Após definir os CacheSets e configurar o JindoSDK, o cache torna-se totalmente transparente: os jobs Hadoop acessam o OSS-HDFS normalmente, enquanto o JindoCache gerencia automaticamente o preenchimento e a consulta do cache.
Etapa 1: Definir políticas de cache
Crie cacheset.xml
Defina seus CacheSets em um arquivo cacheset.xml. O exemplo a seguir configura dois CacheSets para diferentes caminhos do OSS:
<?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>
Cada CacheSet mapeia um caminho pai para um conjunto de políticas. A tabela a seguir descreve todos os parâmetros.
|
Parâmetro |
Descrição |
Exemplo |
|
|
Nome exclusivo do CacheSet. Se já existir um CacheSet com o mesmo nome, a configuração será sobrescrita. |
|
|
|
Caminho pai do OSS. As políticas aplicam-se a todos os dados neste caminho. |
|
|
|
Política de cache. Valores válidos: |
|
|
|
Define se os metadados do arquivo ficam em cache localmente. |
|
|
|
Modo de leitura dos arquivos. Deve ser |
|
|
|
Destino das gravações. |
|
Aplicar a configuração do CacheSet
Faça logon no cluster. Para mais informações, consulte Fazer logon em um cluster.
Salve o arquivo
cacheset.xmlem um diretório no cluster. Neste exemplo, o arquivo está em/path/cacheset.xml.-
Execute o comando a seguir para carregar a configuração do CacheSet no JindoCache:
jindocache -refreshCacheSet -path /path/cacheset.xmlUma execução bem-sucedida exibe:
Successfully refresh cacheset !!!Para ver todos os comandos da CLI do JindoCache disponíveis, consulte Notas de uso da CLI do JindoCache.
-
Execute o comando a seguir para verificar se os CacheSets foram carregados:
jindocache -listCacheSet
Etapa 2: Configure o JindoSDK
Defina a classe de implementação do OSS-HDFS no Hadoop-Common para que o cliente direcione o tráfego pelo JindoCache. No console EMR, acesse a aba core-site.xml na guia Configure da página de serviço do Hadoop-Common e adicione o seguinte item de configuração. Para mais informações, consulte Gerencie itens de configuração.
|
Item de configuração |
Valor |
Comportamento padrão |
|
|
|
Se deixado em branco, o cliente comunica-se diretamente com o OSS-HDFS sem usar cache. |
Esta configuração aplica-se no nível do cliente e entra em vigor sem necessidade de reiniciar o JindoCache.
Após salvar a configuração, os jobs que leem do OSS-HDFS preenchem automaticamente o cache na primeira leitura. Leituras subsequentes dos mesmos dados usam diretamente o cache.
Perguntas frequentes
Como configurar o acesso entre contas ao OSS-HDFS?
Por padrão, o JindoCache acessa o OSS-HDFS sem credenciais explícitas (modo sem senha). Para acesso entre contas, adicione os seguintes itens de configuração na aba common da página de serviço do JindoCache.
Abra a aba de configuração:
Faça logon no console EMR. No painel de navegação à esquerda, clique em EMR on ECS.
Na barra de navegação superior, selecione a região do cluster e escolha um grupo de recursos.
Na página EMR on ECS, localize o cluster e clique em Services na coluna Actions.
Localize JindoCache e clique em Configure.
Clique na aba common.
Add the configuration items:
Clique em Add Configuration Item e adicione os seguintes itens. Substitua YYY pelo nome do bucket do OSS com o OSS-HDFS ativado. Para mais detalhes sobre como aplicar alterações de configuração, consulte Gerencie itens de configuração.
|
Item de configuração |
Descrição |
|
|
AccessKey ID usado para acessar o OSS-HDFS. |
|
|
AccessKey secret usado para acessar o OSS-HDFS. |
|
|
Endpoint do OSS-HDFS. Exemplo: |
|
|
Defina como |