Les tâches MapReduce MaxCompute sont soumises aux limites suivantes. Le dépassement d'une limite entraîne l'échec de la tâche.
Ces limites se répartissent en cinq catégories :
Mémoire — mémoire maximale utilisable par une instance map ou reduce unique
Quantité — plafonds applicables aux instances, entrées, sorties, ressources, compteurs et tentatives
Longueur — limites de taille pour les ressources, les divisions de données et les colonnes de type chaîne
Temps — durée maximale pendant laquelle un worker peut s'exécuter sans lire, écrire ou envoyer de signal de présence
Type de données — types de champs pris en charge dans les ressources de table
Tableau des limites
|
Limite |
Valeur |
Catégorie |
Paramètre de configuration |
Par défaut |
Configurable |
|
Mémoire par instance |
256 Mo – 12 Go |
Mémoire |
|
2 048 Mo + 1 024 Mo |
Oui |
|
Ressources par tâche |
256 |
Quantité |
— |
— |
Non |
|
Entrées par tâche |
1 024 |
Quantité |
— |
— |
Non |
|
Sorties par tâche |
256 |
Quantité |
— |
— |
Non |
|
Tables distinctes parmi toutes les entrées |
64 |
Quantité |
— |
— |
Non |
|
Compteurs personnalisés par tâche |
64 |
Quantité |
— |
— |
Non |
|
Instances map par tâche |
1 – 100 000 |
Quantité |
|
Calculé à partir de la taille de division |
Oui |
|
Instances reduce par tâche |
0 – 2 000 |
Quantité |
|
1/4 du nombre d'instances map |
Oui |
|
Tentatives par instance ayant échoué |
3 |
Quantité |
— |
— |
Non |
|
Débogage local : instances map |
2 (par défaut), max 100 |
Quantité |
— |
2 |
Non |
|
Débogage local : instances reduce |
1 (par défaut), max 100 |
Quantité |
— |
1 |
Non |
|
Débogage local : enregistrements téléchargés par entrée |
100 (par défaut), max 10 000 |
Quantité |
— |
100 |
Non |
|
Lectures répétées d'une ressource par instance |
64 |
Quantité |
— |
— |
Non |
|
Taille totale des ressources par tâche |
2 Go |
Longueur |
— |
— |
Non |
|
Taille de division |
≥ 1 |
Longueur |
|
256 Mo |
Oui |
|
Longueur du contenu d'une colonne STRING |
8 Mo |
Longueur |
— |
— |
Non |
|
Délai d'expiration de l'exécution du worker |
1 – 3 600 secondes |
Temps |
|
600 secondes |
Oui |
|
Types de champs pris en charge dans les ressources de table |
BIGINT, DOUBLE, STRING, DATETIME, BOOLEAN |
Type de données |
— |
— |
Non |
Détails des limites
Mémoire par instance
Chaque instance map ou reduce dispose de deux pools de mémoire : la mémoire du framework (2 048 Mo par défaut) et la mémoire heap de la machine virtuelle Java (JVM) (1 024 Mo par défaut). Le total combiné doit rester dans la plage de 256 Mo à 12 Go. Ajustez à la fois odps.stage.mapper.mem et odps.stage.mapper.jvm.mem (ou leurs équivalents pour le reducer) lors de l'optimisation de l'allocation mémoire.
Ressources par tâche
Une seule tâche peut référencer jusqu'à 256 ressources. Chaque table et chaque fichier d'archive compte comme une ressource. La taille totale de toutes les ressources référencées ne peut pas dépasser 2 Go.
Entrées et sorties
Une partition unique compte comme une entrée. Le nombre total d'entrées ne peut pas dépasser 1 024.
Le nombre total de tables distinctes parmi toutes les entrées ne peut pas dépasser 64.
Le nombre total de sorties ne peut pas dépasser 256.
Compteurs personnalisés
Une tâche peut définir jusqu'à 64 compteurs personnalisés. Le nom du groupe et le nom du compteur ne doivent pas contenir le caractère dièse (#), et leur longueur combinée ne peut pas dépasser 100 caractères.
Instances map et reduce
Le framework calcule le nombre d'instances map en fonction de la taille de division. Il s'agit du comportement par défaut : le framework détermine automatiquement le nombre d'instances. Pour remplacer ce comportement, définissez odps.stage.mapper.num sur une valeur comprise entre 1 et 100 000. Si aucune table d'entrée n'est spécifiée, vous devez définir ce paramètre explicitement.
Par défaut, le nombre d'instances reduce correspond au quart du nombre d'instances map. Définissez odps.stage.reducer.num sur n'importe quelle valeur comprise entre 0 et 2 000 pour modifier ce paramètre. Une instance reduce peut traiter nettement plus de données qu'une instance map, ce qui risque de ralentir la phase de réduction.
Tentatives
Une instance map ou reduce ayant échoué fait l'objet de trois tentatives maximum. Certaines exceptions non récupérables provoquent l'échec immédiat de la tâche sans nouvelle tentative.
Mode de débogage local
En mode de débogage local :
Instances map : 2 par défaut, 100 maximum
Instances reduce : 1 par défaut, 100 maximum
Enregistrements téléchargés par entrée : 100 par défaut, 10 000 maximum
Délai d'expiration de l'exécution du worker
Un worker expire s'il ne lit ni n'écrit de données et n'envoie aucun signal de présence via context.progress() pendant une durée supérieure au délai d'expiration configuré. Le délai par défaut est de 600 secondes (plage : 1 à 3 600 secondes). Définissez odps.function.timeout sur une valeur plus élevée pour les tâches présentant de longs intervalles de traitement entre les opérations d'E/S.
Limites des fonctionnalités
|
Fonctionnalité |
Prise en charge |
|
Lecture de données depuis OSS (Object Storage Service) |
Non |
|
Nouveaux types de données introduits dans MaxCompute V2.0 |
Non |
|
Exécution de tâches MapReduce dans des projets activant les schémas |
Non |
Lorsqu'une tâche MapReduce référence une ressource de table, une erreur est signalée si la table contient des champs de types de données non pris en charge.
Si vous mettez à niveau un projet pour qu'il prenne en charge les schémas (support schemas), les tâches MapReduce existantes dans ce projet ne peuvent plus s'exécuter.