Cette rubrique explique comment utiliser JindoCache pour accélérer les tâches accédant à OSS-HDFS. JindoCache exploite les ressources de stockage de votre cluster pour mettre en cache de manière transparente les fichiers OSS-HDFS, améliorant ainsi les performances d'accès aux données.
Prérequis
Vous avez créé un cluster et sélectionné le service JindoCache. Pour plus d'informations, consultez la rubrique Créer un cluster.
Vous avez activé OSS-HDFS et accordé les autorisations requises. Pour plus d'informations, consultez la rubrique Activer OSS-HDFS.
Procédure
-
Définissez une politique de mise en cache.
JindoCache utilise des CacheSets pour gérer les politiques de mise en cache. Définissez un ou plusieurs CacheSets afin d'appliquer différentes politiques à différents chemins.
Connectez-vous au cluster. Pour plus d'informations, consultez la rubrique Se connecter à un cluster.
-
Créez un fichier
cacheset.xml.Dans cet exemple, le fichier
cacheset.xmlse trouve dans le répertoire/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>Paramètre
Description
Exemple
name
Nom du CacheSet. Ce nom doit être unique. Un nom dupliqué écrase le CacheSet existant.
name1
path
Chemin parent de la politique. La politique définie dans ce CacheSet s'applique à tous ses sous-chemins.
oss://emr-test/dir1
cacheStrategy
Politique de mise en cache. Les valeurs valides sont
DISTRIBUTEDetDHT(Distributed Hash Table). La politiqueDHTest idéale pour accélérer l'accès en lecture seule aux petits fichiers.DISTRIBUTED
metaPolicy
Politique de mise en cache des métadonnées. Les valeurs valides sont
ALWAYSetONCE.-
ALWAYS: Ne met pas en cache les métadonnées. Toutes les opérations sur les métadonnées lisent directement depuis la source distante. -
ONCE: Met en cache les métadonnées. Après la lecture initiale depuis la source distante, les demandes ultérieures de métadonnées sont servies depuis le cache local.
RemarqueSi
cacheStrategyest défini surDHT,metaPolicydoit être défini surONCE.ALWAYS
readPolicy
Politique de lecture. Seule la valeur
CACHE_ASIDEest actuellement prise en charge, ce qui signifie que les données sont d'abord lues depuis le cache.CACHE_ASIDE
writePolicy
Politique d'écriture. Les valeurs prises en charge incluent :
-
WRITE_AROUND: Écrit les données directement dans le stockage distant, en contournant le cache. -
CACHE_ONLY: Écrit les données uniquement dans le cache.RemarqueSi vous utilisez la politique
CACHE_ONLY, vous devez également définirmetaPolicysurONCE. -
WRITE_THROUGH: Écrit les données à la fois dans le cache et dans le stockage distant.
WRITE_AROUND
-
-
Exécutez la commande suivante pour actualiser les CacheSets dans le système JindoCache.
jindocache -refreshCacheSet -path /path/cacheset.xmlSi la commande réussit, la sortie inclut le message
Successfully refresh cacheset !!!. Pour plus d'informations sur les commandes JindoCache, consultez le Guide d'utilisation de l'interface CLI JindoCache. -
Utilisez la commande
listCacheSetpour afficher les informations relatives aux CacheSets du système.jindocache -listCacheSet
-
Configurez JindoSDK.
Configurez la classe d'implémentation JindoCache pour OSS-HDFS dans Hadoop-Common. Dans la console EMR, accédez à la page de configuration du service Hadoop-Common, sélectionnez l'onglet core-site.xml et modifiez l'élément de configuration. Pour obtenir des étapes détaillées, consultez la rubrique Gérer les éléments de configuration.
Paramètre
Description
fs.xengine
La valeur doit être jindocache.
Si vous laissez ce paramètre vide, le client n'utilise pas le cache et communique directement avec le backend.
RemarqueIl s'agit d'une configuration côté client. Vous n'avez pas besoin de redémarrer le service JindoCache.
Une fois ces configurations effectuées, les tâches accédant à OSS-HDFS peuvent utiliser la fonctionnalité de mise en cache. JindoCache offre une mise en cache transparente, vous n'avez donc pas besoin de modifier vos tâches. Lorsqu'une tâche lit des données depuis OSS-HDFS, celles-ci sont automatiquement mises en cache dans le système JindoCache. Les demandes ultérieures pour les mêmes données sont servies depuis le cache, ce qui améliore les performances de lecture.
FAQ
Configurer un AccessKey pour OSS-HDFS
JindoCache prend en charge l'accès sans identifiants à OSS-HDFS. Toutefois, si vous devez accéder à OSS-HDFS depuis différents comptes, vous devez configurer des identifiants, notamment un AccessKey ID, un AccessKey Secret et un endpoint.
-
Accédez à l'onglet common du service JindoCache.
Connectez-vous à la console E-MapReduce.
Dans la barre de navigation supérieure, sélectionnez une région et un groupe de ressources selon vos besoins.
Sur la page Clusters, recherchez le cluster cible et cliquez sur Services dans la colonne Actions.
Dans la section du service JindoCache, cliquez sur Configure.
Cliquez sur l'onglet common.
-
Ajoutez et appliquez les éléments de configuration.
Cliquez sur Add Configuration Item.
-
Dans la boîte de dialogue Add Configuration Item, ajoutez les éléments de configuration suivants.
Pour obtenir des étapes détaillées, consultez la rubrique Gérer les éléments de configuration.
RemarqueRemplacez
YYYpar le nom de votre bucket OSS-HDFS.Paramètre
Description
jindocache.oss.bucket.YYY.accessKeyId
L'AccessKey ID pour l'accès à OSS-HDFS.
jindocache.oss.bucket.YYY.accessKeySecret
L'AccessKey Secret pour l'accès à OSS-HDFS.
jindocache.oss.bucket.YYY.endpoint
L'endpoint pour OSS-HDFS. Exemple :
cn-hangzhou.oss-dls.aliyuncs.com.jindocache.oss.bucket.YYY.data.lake.storage.enable
La valeur doit être
true.