La mise à jour de la version d'image de Managed Service pour Apache Spark dans Cloud Data Fusion vous permet de maintenir la compatibilité des dépendances, d'accéder aux nouvelles fonctionnalités Spark et de résoudre les problèmes d'exécution des pipelines. Vous pouvez configurer cette version d'image au niveau de l'instance, de l'espace de noms ou du pipeline pour répondre à vos exigences opérationnelles.
Avant de commencer
Arrêtez tous les pipelines en temps réel et les jobs de réplication dans l'instance Cloud Data Fusion. Si un pipeline ou une réplication en temps réel est en cours d'exécution lorsque vous modifiez la version d'image de Managed Service pour Apache Spark, les modifications ne sont pas appliquées à l'exécution du pipeline.
Pour les pipelines en temps réel, si la création de points de contrôle est activée, l'arrêt des pipelines n'entraîne aucune perte de données. Pour les jobs de réplication, tant que les journaux de la base de données sont disponibles, l'arrêt et le démarrage du job de réplication n'entraînent aucune perte de données.
Console
Accédez à la page Instances de Cloud Data Fusion et ouvrez l'instance dans laquelle vous devez arrêter un pipeline.
Ouvrez chaque pipeline en temps réel dans Pipeline Studio, puis cliquez sur Stop (Arrêter).
Ouvrez chaque job de réplication sur la page Replicate (Répliquer), puis cliquez sur Stop (Arrêter).
API REST
Pour récupérer tous les pipelines, utilisez l'appel d'API REST suivant :
GET -H "Authorization: Bearer ${AUTH_TOKEN}" \ "${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/apps"Remplacez
NAMESPACE_IDpar le nom de votre espace de noms.Pour arrêter un pipeline en temps réel, utilisez l'appel d'API REST suivant :
POST -H "Authorization: Bearer ${AUTH_TOKEN}" \ "${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/apps/PIPELINE_NAME/spark/DataStreamsSparkStreaming/stop"Remplacez NAMESPACE_ID par le nom de votre espace de noms et PIPELINE_NAME par le nom du pipeline en temps réel.
Pour arrêter un job de réplication, utilisez l'appel d'API REST suivant :
POST -H "Authorization: Bearer ${AUTH_TOKEN}" \ "${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/apps/REPLICATION_JOB_NAME/workers/DeltaWorker/stop"Remplacez NAMESPACE_ID par le nom de votre espace de noms et REPLICATION_JOB_NAME par le nom du job de réplication.
Pour en savoir plus, consultez Arrêter les pipelines en temps réel et Arrêter les jobs de réplication.
Vérifier et remplacer la version par défaut de Managed Service pour Apache Spark dans Cloud Data Fusion
Cliquez sur System Admin > Configuration > System Preferences (Administration système > Configuration > Préférences système).

Si aucune image Managed Service pour Apache Spark n'est spécifiée dans les préférences système ou si vous souhaitez modifier la préférence, cliquez sur Edit System Preferences (Modifier les préférences système).
Saisissez le texte suivant dans le champ Key (Clé) :
system.profile.properties.imageVersionSaisissez l'image Managed Service pour Apache Spark choisie dans le champ Value (Valeur), par exemple
2.1.Cliquez sur Save &Close (Enregistrer et fermer).

Cette modification affecte l'ensemble de l'instance Cloud Data Fusion, y compris tous ses espaces de noms et toutes ses exécutions de pipeline, sauf si la propriété de version d'image est remplacée dans un espace de noms, un pipeline ou un argument d'exécution de votre instance.
Modifier la version d'image de Managed Service pour Apache Spark
La version d'image peut être définie dans l'interface Web de Cloud Data Fusion dans les configurations de calcul, les préférences d'espace de noms ou les arguments d'exécution du pipeline.
Modifier l'image dans les préférences d'espace de noms
Si vous avez remplacé la version d'image dans les propriétés de votre espace de noms, procédez comme suit :
Cliquez sur System Admin > Configuration > Namespaces (Administration système > Configuration > Espaces de noms).
Ouvrez chaque espace de noms, puis cliquez sur Preferences (Préférences).
Assurez-vous qu'aucun remplacement n'est effectué avec la clé
system.profile.properties.imageVersionet une valeur de version d'image incorrecte.Cliquez sur Finish (Terminer).
Modifier l'image dans les profils de calcul système
Cliquez sur System Admin > Configuration (Administration système > Configuration).
Cliquez sur Compute Profiles > Create New Profile (Profils de calcul > Créer un profil).
Sélectionnez le provisionneur Managed Service pour Apache Spark.

Créez le profil pour Managed Service pour Apache Spark. Dans le champ Image Version (Version d'image), saisissez une version d'image Managed Service pour Apache Spark.

Sélectionnez ce profil de calcul lors de l'exécution du pipeline sur la page Studio. Sur la page d'exécution du pipeline, cliquez sur Configure > Compute config (Configurer > Configuration de calcul), puis sélectionnez ce profil.
Sélectionnez le profil Managed Service pour Apache Spark, puis cliquez sur Save (Enregistrer).
Cliquez sur Finish (Terminer).
Modifier l'image dans les arguments d'exécution du pipeline
Si vous avez remplacé la version d'image par une propriété dans les arguments d'exécution de votre pipeline, procédez comme suit :
Cliquez sur le menu Menu > List.
Sur la page List (Liste), sélectionnez le pipeline que vous souhaitez mettre à jour.
Le pipeline s'ouvre sur la page Studio.
Pour développer les options Run (Exécuter), cliquez sur la flèche de développement .
La fenêtre Runtime Arguments (Arguments d'exécution) s'ouvre.
Vérifiez qu'aucun remplacement n'est effectué avec la clé
system.profile.properties.imageVersionet une version d'image incorrecte comme valeur.Cliquez sur Save (Enregistrer).

Recréer les clusters Managed Service pour Apache Spark statiques utilisés par Cloud Data Fusion avec la version d'image choisie
Si vous utilisez des clusters Managed Service pour Apache Spark existants avec Cloud Data Fusion, suivez le guide Managed Service pour Apache Spark pour recréer les clusters avec la version d'image Managed Service pour Apache Spark choisie pour votre version Cloud Data Fusion.
Vous pouvez également créer un cluster Managed Service pour Apache Spark avec la version d'image Managed Service pour Apache Spark choisie, puis supprimer et recréer le profil de calcul dans Cloud Data Fusion avec le même nom de profil de calcul et le nom de cluster Managed Service pour Apache Spark mis à jour. De cette façon, l'exécution des pipelines par lot peut se terminer sur le cluster existant, et les exécutions de pipeline suivantes ont lieu sur le nouveau cluster Managed Service pour Apache Spark. Vous pouvez supprimer l'ancien cluster Managed Service pour Apache Spark une fois que vous avez confirmé que toutes les exécutions de pipeline sont terminées.
Vérifier que la version d'image de Managed Service pour Apache Spark est à jour
Console
Dans la Google Cloud console, accédez à la page Clusters de Managed Service pour Apache Spark.
Ouvrez la page Cluster details (Détails du cluster) pour le nouveau cluster créé par Cloud Data Fusion lorsque vous avez spécifié la nouvelle version.
Le champ Image version (Version d'image) contient la nouvelle valeur que vous avez spécifiée dans Cloud Data Fusion.
API REST
Obtenez la liste des clusters avec leurs métadonnées :
GET -H "Authorization: Bearer ${AUTH_TOKEN}" \ https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION_ID/clustersRemplacez les éléments suivants :
PROJECT_IDpar le nom de votre espace de nomsREGION_IDpar le nom de la région dans laquelle se trouvent vos clusters
Recherchez le nom de votre pipeline (nom du cluster).
Sous cet objet JSON, consultez l'image dans
config > softwareConfig > imageVersion.
Modifier l'image Managed Service pour Apache Spark vers la version 2.1 ou ultérieure
Cloud Data Fusion 6.9.1 et versions ultérieures sont compatibles avec l'image Managed Service pour Apache Spark 2.1 Compute Engine, qui s'exécute dans Java 11. Dans les versions 6.10.0 et ultérieures, l'image 2.1 est la valeur par défaut.
Si vous passez à l'image 2.1 ou ultérieure à partir d'une image antérieure, pour que vos pipelines par lot et vos jobs de réplication réussissent, les pilotes JDBC utilisés par les plug-ins de base de données dans ces instances doivent être compatibles avec Java 11.
Les images Managed Service pour Apache Spark 2.2 et 2.1 présentent les limites suivantes dans Cloud Data Fusion :
- Les jobs MapReduce ne sont pas compatibles.
- Les versions de pilote JDBC utilisées dans les plug-ins de base de données de votre instance doivent être mises à jour pour être compatibles avec Java 11. Consultez le tableau suivant pour connaître les versions de pilote compatibles avec Managed Service pour Apache Spark 2.2, 2.1 et Java 11 :
| Pilotes JDBC | Versions antérieures supprimées de Cloud Data Fusion 6.9.1 | Versions compatibles avec Java 8 et Java 11 qui fonctionnent avec Managed Service pour Apache Spark 2.2, 2.1 ou 2.0 |
|---|---|---|
| Pilote JDBC Cloud SQL pour MySQL | - | 1.0.16 |
| Pilote JDBC Cloud SQL pour PostgreSQL | - | 1.0.16 |
| Pilote JDBC Microsoft SQL Server | Pilote JDBC Microsoft 6.0 | Pilote JDBC Microsoft 9.4 |
| Pilote JDBC MySQL | 5.0.8, 5.1.39 | 8.0.25 |
| Pilote JDBC PostgreSQL | 9.4.1211.jre7, 9.4.1211.jre8 | 42.6.0.jre8 |
| Pilote JDBC Oracle | ojdbc7 | ojdbc8 (12c et versions ultérieures) |
Utilisation de la mémoire lors de l'utilisation de Managed Service pour Apache Spark 2.1 ou version ultérieure
L'utilisation de la mémoire peut augmenter pour les pipelines qui utilisent Managed Service pour Apache Spark 2.1 ou version ultérieure. Si vous mettez à niveau votre instance vers la version 6.10 ou ultérieure et que les pipelines précédents échouent en raison de problèmes de mémoire, augmentez la mémoire du pilote et de l'exécuteur à 2 048 Mo dans la configuration Resources du pipeline.

Vous pouvez également remplacer la version de Managed Service pour Apache Spark en définissant l'argument d'exécution system.profile.properties.imageVersion sur 2.0-debian10.