Ajustement des mappeurs - Amazon DynamoDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Ajustement des mappeurs

Lorsque Hive lance une tâche Hadoop, celle-ci est traitée par une ou plusieurs tâches de mappage. En supposant que votre table DynamoDB dispose d'une capacité de débit suffisante, vous pouvez modifier le nombre de mappeurs dans le cluster afin d'améliorer les performances.

Note

Le nombre de tâches de mappage utilisées dans une tâche Hadoop est influencé par les fractionnements d'entrée où Hadoop subdivise les données en blocs logiques. Si Hadoop n'effectue pas suffisamment de fractionnements d'entrée, il se peut que vos opérations d'écriture ne puissent pas consommer tout le débit d'écriture disponible dans la table DynamoDB.

Augmentation du nombre de mappeurs

Chaque mappeur dans un Amazon EMR dispose d'un taux de lecture maximum de 1 Mio par seconde. Le nombre de mappeurs dans un cluster dépend de la taille des nœuds de votre cluster (pour plus d'informations sur la taille des nœuds et le nombre de mappeurs par nœud, consultez Configuration de la tâche dans le Manuel du développeur Amazon EMR).

Si votre table DynamoDB dispose d'une capacité de débit suffisante pour les lectures, vous pouvez essayer d'augmenter le nombre de mappeurs en effectuant l'une des opérations suivantes :

  • Augmenter la taille des nœuds de votre cluster. Par exemple, si votre cluster utilise des nœuds m1.large (trois mappeurs par nœud), vous pouvez essayer d'opérer un mise à niveau vers des nœuds m1.xlarge (huit mappers par nœud).

  • Augmenter le nombre de nœuds de votre cluster. Par exemple, si vous avez un cluster de trois nœuds m1.xlarge, vous disposez d'un total de 24 mappeurs. Si vous doublez la taille du cluster, avec le même type de nœud, vous disposez de 48 mappeurs.

Vous pouvez utiliser le AWS Management Console pour gérer la taille ou le nombre de nœuds de votre cluster. (il se peut que vous deviez redémarrer le cluster pour que ces modifications prennent effet).

Un autre moyen d'augmenter le nombre de mappeurs consiste à modifier le paramètre de configuration Hadoop mapred.tasktracker.map.tasks.maximum. (comme il s'agit d'un paramètre Hadoop et non Hive, vous ne pouvez pas le modifier de manière interactive à partir de l'invite de commande). Si vous augmentez la valeur de mapred.tasktracker.map.tasks.maximum, vous pouvez augmenter le nombre de mappeurs sans augmenter la taille ou le nombre de nœuds. Cependant, il est possible que les nœuds de cluster manquent de mémoire si vous définissez une valeur trop élevée.

Vous définissez la valeur de mapred.tasktracker.map.tasks.maximum en tant qu'action d'amorçage lorsque vous lancez votre cluster Amazon EMR pour la première fois. Pour plus d'informations, consultez (Facultatif) Création d'actions d'amorçage pour installer des logiciels supplémentaires dans le Guide de gestion Amazon EMR.

Réduction du nombre de mappeurs

Si vous utilisez l'instruction SELECT pour sélectionner des données d'une table Hive externe qui mappe à DynamoDB, la tâche Hadoop peut utiliser autant de tâches que nécessaire, jusqu'au nombre maximum de mappeurs dans le cluster. Dans ce scénario, il est possible qu'une requête Hive de longue durée consomme toute la capacité de lecture approvisionnée de la table DynamoDB, ce qui a un impact négatif sur d'autres utilisateurs.

Vous pouvez utiliser le paramètre dynamodb.max.map.tasks afin de définir une limite supérieure pour les tâches de mappage :

SET dynamodb.max.map.tasks=1

Cette valeur doit être supérieure ou égale à 1. Lorsque Hive traite votre requête, la tâche Hadoop qui en résulte ne dépasse pas la capacité dynamodb.max.map.tasks lors de la lecture de la table DynamoDB.