Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
L’extension d’émetteur de diagnostic Apache Spark de Fabric est une bibliothèque qui permet aux applications Apache Spark d’envoyer des journaux, des journaux des évènements et des mesures vers différentes destinations, incluant Azure Log Analytics, Stockage Azure et Azure Event Hubs. Dans ce tutoriel, vous découvrez comment utiliser l’extension d’émetteur de diagnostic Apache Spark de Fabric pour envoyer des journaux, des journaux des événements et des mesures des applications Apache Spark à votre instance Azure Event Hubs.
Collecter des journaux et des métriques pour les envoyer vers Azure Event Hubs
Étape 1 : Créer une instance Azure Event Hubs
Pour collecter des journaux de diagnostic et des mesures, vous pouvez utiliser une instance Azure Event Hubs existante. Si vous n’en avez pas, vous pouvez créer un hub d’événements.
Étape 2 : Créer un artefact d’environnement Fabric avec une configuration Apache Spark
Option 1 : Configurer avec une chaîne de connexion Azure Event Hubs
Créer un artefact d’environnement Fabric dans Fabric
Ajoutez les propriétés Spark suivantes avec les valeurs appropriées à l’artefact d’environnement, ou sélectionnez Ajouter à partir de .yml dans le ruban pour télécharger l’exemple de fichier yaml qui contient déjà les propriétés suivantes.
spark.synapse.diagnostic.emitters: MyEventHub spark.synapse.diagnostic.emitter.MyEventHub.type: "AzureEventHub" spark.synapse.diagnostic.emitter.MyEventHub.categories: "Log,EventLog,Metrics" spark.synapse.diagnostic.emitter.MyEventHub.secret: <connection-string> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Renseignez les paramètres
<connection-string>
dans le fichier de configuration. Pour plus d’informations, consultez Configurations d’Azure Event Hubs.
Option 2 : Configuration avec Azure Key Vault
Remarque
Vérifiez que les utilisateurs qui soumettent des applications Apache Spark reçoivent les autorisations de lire les secrets. Pour plus d’informations, consultez Attribution de l’accès aux clés, certificats et secrets Key Vault avec un contrôle d’accès en fonction du rôle Azure.
Pour configurer Azure Key Vault pour le stockage de la clé d’espace de travail :
Créez votre coffre de clés et accédez-y sur le Portail Azure.
Dans la page des paramètres du coffre de clés, sélectionnez Secrets, puis Générer/Importer.
Sur l’écran Créer un secret, choisissez les valeurs suivantes :
- Nom : donnez un nom au secret.
-
Valeur : entrez
<connection-string>
comme secret. - Conservez les valeurs par défaut des autres options. Sélectionnez ensuite Créer.
Créez un artefact d’environnement Fabric dans Fabric.
Ajoutez les propriétés Spark suivantes. Vous pouvez aussi sélectionner Ajouter à partir de .yml sur le ruban pour télécharger l’exemple de fichier yaml, qui inclut les propriétés Spark suivantes.
spark.synapse.diagnostic.emitters: MyEventHub spark.synapse.diagnostic.emitter.MyEventHub.type: "AzureEventHub" spark.synapse.diagnostic.emitter.MyEventHub.categories: "Log,EventLog,Metrics" spark.synapse.diagnostic.emitter.MyEventHub.secret.keyVault: <AZURE_KEY_VAULT_URI> spark.synapse.diagnostic.emitter.MyEventHub.secret.keyVault.secretName: <AZURE_KEY_VAULT_SECRET_KEY_NAME> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Renseignez les paramètres suivants dans le fichier de configuration :
<AZURE_KEY_VAULT_URI>
,<AZURE_KEY_VAULT_SECRET_KEY_NAME>
. Pour plus d’informations sur ces paramètres, reportez-vous à Configurations d’Azure Event Hubs.Enregistrez et publiez les modifications.
Étape 3 : Attacher l’artefact d’environnement à des notebooks ou des définitions de travail Spark, ou le définir comme espace de travail par défaut
Remarque
- Seuls les administrateurs d’espace de travail peuvent désigner un environnement comme environnement par défaut pour un espace de travail.
- Une fois défini, il devient l’environnement par défaut pour tous les blocs-notes et définitions de travaux Spark au sein de l’espace de travail. Pour plus d’informations, consultez Paramètres des espaces de travail Fabric.
Pour attacher l’environnement à des notebooks ou des définitions de travail Spark :
- Accédez à votre notebook ou votre définition de travail Spark spécifique dans Fabric.
- Sélectionnez le menu Environnement sous l’onglet Accueil, puis sélectionnez l’environnement avec les propriétés Spark des diagnostics configurés.
- La configuration est appliquée quand vous démarrez une session Spark.
Pour définir l’environnement comme espace de travail par défaut :
- Accédez à Paramètres de l’espace de travail dans Fabric.
- Recherchez les paramètres Spark dans les paramètres de votre espace de travail (Paramètres de l’espace de travail –> Engineering données/Science des données –> Paramètres Spark).
- Sélectionnez l’onglet Environnement , puis choisissez l’environnement avec les propriétés spark de diagnostic configurées, puis sélectionnez Enregistrer.
Configurations disponibles
Paramétrage | Descriptif |
---|---|
spark.synapse.diagnostic.emitters |
Obligatoire. Noms des destinations des émetteurs de diagnostic séparés par des virgules. |
spark.synapse.diagnostic.emitter.<destination>.type |
Obligatoire. Type de destination intégrée. Pour pouvoir activer la destination Azure Event Hubs, la valeur doit être AzureEventHub . |
spark.synapse.diagnostic.emitter.<destination>.categories |
facultatif. Catégories de journaux sélectionnées séparées par des virgules. Les valeurs disponibles sont les suivantes : DriverLog , ExecutorLog , EventLog , Metrics . Si aucune valeur n’est définie, la valeur par défaut sera all (toutes les catégories). |
spark.synapse.diagnostic.emitter.<destination>.secret |
facultatif. Chaîne de connexion d’instance Azure Event Hubs. Ce champ doit correspondre à ce modèle Endpoint=sb://<FQDN>/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<PathName> |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Obligatoire si .secret n’est pas spécifié. Uri du coffre de clés Azure où le secret (chaîne de connexion) est stocké. |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName |
Obligatoire si .secret.keyVault est spécifié. Nom du coffre de clés Azure dans lequel est stocké le secret (chaîne de connexion). |
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match |
facultatif. Noms des événements Spark séparés par des virgules. Vous pouvez spécifier les événements à collecter. Par exemple : SparkListenerApplicationStart,SparkListenerApplicationEnd |
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match |
facultatif. Les noms des enregistreurs Log4j séparés par des virgules. Vous pouvez spécifier les journaux à collecter. Par exemple : org.apache.spark.SparkContext,org.example.Logger |
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match |
facultatif. Suffixes des noms de métriques Spark séparés par des virgules. Vous pouvez spécifier les métriques à collecter. Par exemple : jvm.heap.used |
spark.fabric.pools.skipStarterPools |
Obligatoire. Cette propriété Spark est utilisée pour forcer une session Spark à la demande. Vous devez définir la valeur sur true lors de l’utilisation du pool par défaut afin de déclencher l’émission de journaux et de métriques par les bibliothèques. |
Remarque
La chaîne de connexion d’instance Azure EventHub doit toujours contenir le EntityPath
nom de l’instance Azure Event Hubs.
Exemple de données de journal
Voici un exemple d’enregistrement de journal au format JSON :
{
"timestamp": "2025-02-28T09:13:57.978Z",
"category": "Log|EventLog|Metrics",
"fabricLivyId": "<fabric-livy-id>",
"applicationId": "<application-id>",
"applicationName": "<application-name>",
"executorId": "<driver-or-executor-id>",
"userId": "<the-submitter-user-id>",
"fabricTenantId": "<my-fabric-tenant-id>",
"capacityId": "<my-fabric-capacity-id>",
"artifactType": "SynapseNotebook|SparkJobDefinition",
"artifactId": "<my-fabric-artifact-id>",
"fabricWorkspaceId": "<my-fabric-workspace-id>",
"fabricEnvId": "<my-fabric-environment-id>",
"executorMin": "<executor-min>",
"executorMax": "<executor-max>",
"isHighConcurrencyEnabled": "true|false",
"properties": {
// The message properties of logs, events and metrics.
"timestamp": "2025-02-28T09:13:57.941Z",
"message": "ApplicationAttemptId: appattempt_1740734011890_0001_000001",
"logger_name": "org.apache.spark.deploy.yarn.ApplicationMaster",
"level": "INFO",
"thread_name": "main"
// ...
}
}
Une fois les diagnostics émis dans Azure Event Hub, vous pouvez utiliser ce hub d’événements comme source dans un flux d’événements Fabric pour traiter ou acheminer les données.
Espaces de travail Fabric avec un réseau virtuel managé
Créez un point de terminaison privé managé pour l’instance Azure Event Hubs cible. Pour obtenir des instructions détaillées, reportez-vous à Créer et utiliser des points de terminaison privés managés dans Microsoft Fabric – Microsoft Fabric.
Une fois le point de terminaison privé managé approuvé, les utilisateurs peuvent commencer à émettre des journaux et des mesures vers l’instance Azure Event Hubs cible.