Les jobs MapReduce MaxCompute sont soumis aux limites suivantes. Le dépassement d'une limite entraîne l'échec du job.
Ces limites se répartissent en cinq catégories :
Mémoire — mémoire maximale utilisable par une instance de map ou de reduce unique
Quantité — plafonds applicables aux instances, aux entrées, aux sorties, aux ressources, aux compteurs et aux tentatives
Longueur — limites de taille pour les ressources, les partitions de données et les colonnes de type chaîne
Temps — durée maximale d'exécution d'un worker sans lecture, écriture ni envoi 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 |
Valeur par défaut |
Configurable |
|
Mémoire par instance |
256 Mo–12 Go |
Mémoire |
|
2 048 Mo + 1 024 Mo |
Oui |
|
Ressources par job |
256 |
Quantité |
— |
— |
Non |
|
Entrées par job |
1 024 |
Quantité |
— |
— |
Non |
|
Sorties par job |
256 |
Quantité |
— |
— |
Non |
|
Tables distinctes parmi toutes les entrées |
64 |
Quantité |
— |
— |
Non |
|
Compteurs personnalisés par job |
64 |
Quantité |
— |
— |
Non |
|
Instances de map par job |
1–100 000 |
Quantité |
|
Calculé à partir de la taille de partition |
Oui |
|
Instances de reduce par job |
0–2 000 |
Quantité |
|
1/4 du nombre d'instances de map |
Oui |
|
Tentatives par instance ayant échoué |
3 |
Quantité |
— |
— |
Non |
|
Débogage local : instances de map |
2 (par défaut), max 100 |
Quantité |
— |
2 |
Non |
|
Débogage local : instances de 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 job |
2 Go |
Longueur |
— |
— |
Non |
|
Taille de partition |
≥ 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 de map ou de reduce dispose de deux pools de mémoire : la mémoire du framework (2 048 Mo par défaut) et le tas (heap) de la machine virtuelle Java (JVM) (1 024 Mo par défaut). Le total combiné doit rester compris entre 256 Mo et 12 Go. Ajustez à la fois odps.stage.mapper.mem et odps.stage.mapper.jvm.mem (ou leurs équivalents pour reduce) lors du réglage de l'allocation mémoire.
Ressources par job
Un seul job 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 seule partition 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
Un job peut définir jusqu'à 64 compteurs personnalisés. Le nom du groupe et le nom du compteur ne doivent pas contenir le signe dièse (#), et leur longueur combinée ne peut pas dépasser 100 caractères.
Instances de map et de reduce
Le framework calcule le nombre d'instances de map en fonction de la taille de partition. Il s'agit du comportement par défaut : le framework détermine automatiquement ce nombre. Pour remplacer ce calcul, 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 explicitement ce paramètre.
Par défaut, le nombre d'instances de reduce correspond au quart du nombre d'instances de map. Définissez odps.stage.reducer.num sur n'importe quelle valeur comprise entre 0 et 2 000 pour remplacer cette valeur. Une instance de reduce peut traiter nettement plus de données qu'une instance de map, ce qui peut ralentir la phase de reduce.
Tentatives
Une instance de map ou de reduce ayant échoué fait l'objet de trois tentatives maximum. Certaines exceptions non récupérables entraînent l'échec immédiat du job sans nouvelle tentative.
Mode de débogage local
En mode de débogage local :
Instances de map : 2 par défaut, 100 au maximum
Instances de reduce : 1 par défaut, 100 au maximum
Enregistrements téléchargés par entrée : 100 par défaut, 10 000 au maximum
Délai d'expiration de l'exécution du worker
Un worker atteint le délai d'expiration lorsqu'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 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 jobs présentant de longs intervalles de traitement entre les opérations d'E/S.
Limites des fonctionnalités
|
Fonctionnalité |
Prise en charge |
|
Lecture des données depuis OSS (Object Storage Service) |
Non |
|
Nouveaux types de données introduits dans MaxCompute V2.0 |
Non |
|
Exécution de jobs 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 dont les types de données ne sont pas pris en charge.
Si vous mettez à niveau un projet pour prendre en charge les schémas, les jobs MapReduce existants dans ce projet ne peuvent plus s'exécuter.