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.
Exécution de tâches ETL Spark avec un temps de démarrage réduit
Les versions 2.0 et ultérieures de AWS Glue fournissent une infrastructure mise à jour pour exécuter les tâches Extract-transform-load (ETL, extraction, transformation et chargement) dans AWS Glue avec des temps de démarrage réduits. Grâce à la réduction des temps d'attente, les ingénieurs de données peuvent être plus productifs et augmenter leur interactivité avec AWS Glue. La réduction des écarts dans les temps de démarrage des tâches peut vous aider à respecter ou à dépasser vos SLA de mise à disposition des données pour analyse.
Pour utiliser cette fonction avec vos tâches ETL AWS Glue, sélectionnez 2.0
ou une version ultérieure pour la Glue version
lors de la création de vos tâches.
Rubriques
Nouvelles fonctionnalités prises en charge
Cette section décrit les nouvelles fonctionnalités prises en charge par les versions 2.0 et ultérieures de AWS Glue.
Prise en charge de la spécification de modules Python supplémentaires au niveau de la tâche
Les versions 2.0 et ultérieures de AWS Glue vous permettent également de fournir des modules supplémentaires ou des versions différentes de Python au niveau de la tâche. Vous pouvez utiliser l'option --additional-python-modules
avec une liste de modules Python séparés par des virgules pour ajouter un nouveau module ou modifier la version d'un module existant.
Par exemple, pour mettre à jour ou ajouter un nouveau module scikit-learn
, utilisez la clé/valeur suivante : "--additional-python-modules", "scikit-learn==0.21.3"
.
En outre, l'option --additional-python-modules
vous permet de spécifier un chemin d'accès Amazon S3 vers un module de roue Python. Par exemple :
--additional-python-modules s3://aws-glue-native-spark/tests/j4.2/ephem-3.7.7.1-cp37-cp37m-linux_x86_64.whl,s3://aws-glue-native-spark/tests/j4.2/fbprophet-0.6-py3-none-any.whl,scikit-learn==0.21.3
AWS Glue utilise le programme d'installation de package Python (pip3) pour installer les modules supplémentaires. Vous pouvez faire passer des options supplémentaires spécifiées par python-modules-installer-option
dans pip3 pour installer les modules. Toute incompatibilité ou limitation de pip3 s'appliquera.
Modules Python déjà fournis dans la version 2.0 de AWS Glue
AWS Glue version 2.0 prend en charge les modules Python prêts à l’emploi suivants :
setuptools—45.2.0
subprocess32—3.5.4
ptvsd—4.3.2
pydevd—1.9.0
PyMySQL—0.9.3
docutils—0.15.2
jmespath—0.9.4
six—1.14.0
python_dateutil—2.8.1
urllib3—1.25.8
botocore—1.15.4
s3transfer—0.3.3
boto3—1.12.4
certifi—2019.11.28
chardet—3.0.4
idna—2.9
requests—2.23.0
pyparsing—2.4.6
enum34—1.1.9
pytz—2019.3
numpy—1.18.1
cycler—0.10.0
kiwisolver—1.1.0
scipy—1.4.1
pandas—1.0.1
pyarrow—0.16.0
matplotlib—3.1.3
pyhocon—0.3.54
mpmath—1.1.0
sympy—1.5.1
patsy—0.5.1
statsmodels—0.11.1
fsspec—0.6.2
s3fs—0.4.0
Cython—0.29.15
joblib—0.14.1
pmdarima—1.5.3
scikit-learn—0.22.1
tbats—1.0.9
Comportement de la journalisation
Les versions 2.0 et ultérieures de AWS Glue prennent en charge différents comportements de journalisation par défaut. Les différences sont les suivantes :
La journalisation se produit en temps réel.
Il existe des flux distincts pour les pilotes et les exécuteurs.
Pour chaque pilote et exécuteur, il existe deux flux : le flux de sortie et le flux d'erreurs.
Flux de pilotes et d'exécuteurs
Les flux de pilotes sont identifiés par l'ID d'exécution de la tâche. Les flux d'exécuteur sont identifiés par la tâche <ID d'exécution
>_<ID de tâche d'exécution
>. Par exemple :
"logStreamName": "jr_8255308b426fff1b4e09e00e0bd5612b1b4ec848d7884cebe61ed33a31789..._g-f65f617bd31d54bd94482af755b6cdf464542..."
Flux de sortie et d'erreurs
Le flux de sortie contient la sortie standard (stdout) de votre code. Le flux d'erreurs contient des messages de journalisation de votre code/bibliothèque.
Flux de journaux :
Les flux de journaux des pilotes contiennent <
jr
>, où <jr
> est l'ID d'exécution de la tâche.Les flux de journaux de l'exécuteur contiennent <
jr
>_<g
>, où <g
> est l'ID de tâche de l'exécuteur. Vous pouvez rechercher l'ID de la tâche d'exécution dans le journal des erreurs du pilote.
Les groupes de journaux par défaut pour la version 2.0 de AWS Glue sont les suivants :
/aws-glue/jobs/logs/output
pour la sortie/aws-glue/jobs/logs/error
pour les erreurs
Lorsqu'une configuration de sécurité est fournie, les noms des groupes de journaux deviennent :
/aws-glue/jobs/<
security configuration
>-role/<Role Name
>/output/aws-glue/jobs/<
security configuration
>-role/<Role Name
>/error
Sur la console, le lien Logs (Journaux) pointe vers le groupe de journaux de sortie et le lien Error (Erreur) pointe vers le groupe de journaux d'erreurs. Lorsque la journalisation continue est activée, les liens Logs (Journaux) pointent vers le groupe de journaux continus et le lien Output (sortie) pointe vers le groupe de journaux de sortie.
Règles de journalisation
Note
Le nom de groupe de journaux par défaut pour la journalisation continue est /aws-glue/jobs/logs-v2
.
Dans les versions 2.0 et ultérieures de AWS Glue, la journalisation continue a le même comportement que dans la version 1.0 de AWS Glue
Groupe de journaux par défaut :
/aws-glue/jobs/logs-v2
Flux du journal des pilotes : <
jr
>-piloteFlux de journal de l'exécuteur : <
jr
>-<ID d'exécution
>Le nom du groupe de journaux peut être modifié en définissant
--continuous-log-logGroupName
Le nom des flux de journaux peut être préfixé en définissant
--continous-log-logStreamPrefix
Fonctions non prises en charge
Les fonctionnalités AWS Glue suivantes ne sont pas prises en charge :
Points de terminaison de développement
Les versions 2.0 et ultérieures de AWS Glue ne s'exécutent pas sur Apache YARN, les paramètres YARN ne s'appliquent donc pas
Les versions 2.0 et ultérieures de AWS Glue n'ont pas de système de fichiers distribué Hadoop (HDFS)
Les versions 2.0 et ultérieures de AWS Glue n'utilisent pas l'allocation dynamique, les métriques ExecutorAllocationManager ne sont donc pas disponibles
Pour les tâches des versions 2.0 et ultérieures de AWS Glue, spécifiez le nombre et le type d'employés, mais ne spécifiez pas de
maxCapacity
.-
AWS Glue 2.0 et versions ultérieures ne prennent pas en charge
s3n
dès la première utilisation. Il est recommandé d'utilisers3
ous3a
. Si les tâches doivent utilisers3n
pour une raison quelconque, vous pouvez transmettre l'argument supplémentaire suivant :--conf spark.hadoop.fs.s3n.impl=com.amazon.ws.emr.hadoop.fs.EmrFileSystem