Indsaml dine Apache Spark-programlogge og -målepunkter ved hjælp af Azure Event Hubs (prøveversion)
Fabric Apache Spark-udvidelsen til diagnosticeringsudledere er et bibliotek, der gør det muligt for Apache Spark-programmer at sende logge, hændelseslogge og målepunkter til forskellige destinationer, herunder Azure Log Analytics, Azure Storage og Azure Event Hubs.
I dette selvstudium lærer du, hvordan du bruger udvidelsen fabric Apache Spark-diagnosticeringsenhed til at sende Apache Spark-programlogge, hændelseslogge og målepunkter til dine Azure Event Hubs.
Indsaml logge og målepunkter til Azure Event Hubs
Trin 1: Opret en Forekomst af Azure Event Hubs
Hvis du vil indsamle diagnosticeringslogge og målepunkter, kan du bruge en eksisterende Forekomst af Azure Event Hubs. Hvis du ikke har en, kan du oprette en hændelseshub.
Trin 2: Opret en Fabric-miljøartefakt med Apache Spark-konfiguration
Mulighed 1: Konfigurer med forbindelsesstrengen til Azure Event Hubs
Opret et stofmiljøartefakt i fabric
Føj følgende Spark-egenskaber med de relevante værdier til miljøartefakten, eller vælg Tilføj fra .yml på båndet for at downloade yaml-eksempelfilen , som allerede indeholder følgende egenskaber.
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.
Udfyld parametrene
<connection-string>
i konfigurationsfilen. Du kan få flere oplysninger under Konfigurationer af Azure Event Hubs.
Mulighed 2: Konfigurer med Azure Key Vault
Bemærk
Kendt problem: En session kan ikke startes midlertidigt ved hjælp af mulighed 2. I øjeblikket forhindrer lagring af hemmeligheder i Key Vault Spark-sessioner i at starte. Prioriter konfigurationen af den ved hjælp af den metode, der er beskrevet i Mulighed 1.
Sørg for, at brugere, der indsender Apache Spark-programmer, får læsehemmelige tilladelser. Du kan få flere oplysninger under Giv adgang til Key Vault-nøgler, -certifikater og -hemmeligheder med et rollebaseret adgangskontrolelement i Azure.
Sådan konfigurerer du Azure Key Vault til lagring af nøglen til arbejdsområdet:
Opret og gå til din key vault i Azure-portal.
På siden med indstillinger for key vault skal du vælge Hemmeligheder og derefter Generér/importér.
På skærmen Opret en hemmelighed skal du vælge følgende værdier:
- Navn: Angiv et navn til hemmeligheden.
- Værdi: Angiv
<connection-string>
for hemmeligheden. - Lad de andre værdier være deres standardværdier. Vælg derefter Opret.
Opret en Fabric Environment Artifact i Fabric.
Tilføj følgende Spark-egenskaber. Eller vælg Tilføj fra .yml på båndet for at downloade yaml-eksempelfilen, som omfatter følgende Spark-egenskaber.
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_NAME> 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.
Udfyld følgende parametre i konfigurationsfilen:
<AZURE_KEY_VAULT_NAME>
,<AZURE_KEY_VAULT_SECRET_KEY_NAME>
. Du kan finde flere oplysninger om disse parametre i Konfigurationer af Azure Event Hubs.Gem og publicer ændringerne.
Trin 3: Vedhæft miljøartefakten til notesbøger eller Spark-jobdefinitioner, eller angiv det som standard for arbejdsområdet
Sådan vedhæfter du miljøet til definitioner af notesbøger eller Spark-job:
- Gå til definitionen af den specifikke notesbog eller Spark-job i Fabric.
- Vælg menuen Miljø under fanen Hjem, og vælg miljøet med de konfigurerede egenskaber for Diagnosticering Spark.
- Konfigurationen anvendes, når du starter en Spark-session.
Sådan angiver du miljøet som standard for arbejdsområdet:
- Gå til Indstillinger for arbejdsområde i Fabric.
- Find Spark-indstillingerne i indstillingerne for arbejdsområdet (indstilling for arbejdsområde –> Dataudvikler ing/videnskab –> Spark-indstillinger).
- Vælg fanen Miljø , og vælg miljøet med konfigurerede egenskaber for diagnosticerings spark, og klik på Gem.
Bemærk
Det er kun administratorer af arbejdsområdet, der kan administrere konfigurationer af arbejdsområder. Ændringer, der foretages her, gælder for alle notesbøger og Spark-jobdefinitioner, der er knyttet til indstillingerne for arbejdsområdet. Du kan få flere oplysninger under Indstillinger for stofarbejdsområde.
Tilgængelige konfigurationer
Variantkonfiguration | Beskrivelse |
---|---|
spark.synapse.diagnostic.emitters |
Krævet. De kommaseparerede destinationsnavne for diagnosticeringsudledere. |
spark.synapse.diagnostic.emitter.<destination>.type |
Krævet. Indbygget destinationstype. Hvis du vil aktivere Azure Event Hubs-destinationen, skal værdien være AzureEventHub . |
spark.synapse.diagnostic.emitter.<destination>.categories |
Valgfrit. De markerede logkategorier med kommasepareret. Tilgængelige værdier omfatter DriverLog , ExecutorLog , EventLog , Metrics . Hvis den ikke er angivet, er standardværdien alle kategorier. |
spark.synapse.diagnostic.emitter.<destination>.secret |
Valgfrit. Forekomsten af Azure Event Hubs forbindelsesstreng. Dette felt skal stemme overens med dette mønster Endpoint=sb://<FQDN>/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<PathName> |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Påkrævet, hvis .secret ikke er angivet. Navnet på Azure Key Vault, hvor hemmeligheden (forbindelsesstreng) er gemt. |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName |
Påkrævet, hvis .secret.keyVault er angivet. Navnet på den hemmelige Azure Key Vault, hvor hemmeligheden (forbindelsesstreng) er gemt. |
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match |
Valgfrit. Navnene på de kommaseparerede spark-hændelser kan du angive, hvilke hændelser der skal indsamles. Eksempel: SparkListenerApplicationStart,SparkListenerApplicationEnd |
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match |
Valgfrit. De kommaseparerede Log4j-logføringsnavne kan du angive, hvilke logge der skal indsamles. Eksempel: org.apache.spark.SparkContext,org.example.Logger |
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match |
Valgfrit. De kommaseparerede navnesuffikser for minimetrikværdier kan du angive, hvilke målepunkter der skal indsamles. Eksempel: jvm.heap.used |
Bemærk
Azure Eventhub-forekomsten forbindelsesstreng skal altid indeholde EntityPath
, som er navnet på Azure Event Hubs-forekomsten.
Logfør dataeksempel
Her er et eksempel på en logpost i JSON-format:
{
"timestamp": "2024-09-06T03:09:37.235Z",
"category": "Log|EventLog|Metrics",
"fabricLivyId": "<fabric-livy-id>",
"applicationId": "<application-id>",
"applicationName": "<application-name>",
"executorId": "<driver-or-executor-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": "2024-09-06T03:09:37.235Z",
"message": "Initialized BlockManager: BlockManagerId(1, vm-04b22223, 34319, None)",
"logger_name": "org.apache.spark.storage.BlockManager",
"level": "INFO",
"thread_name": "dispatcher-Executor"
//...
}
}
Fabric-arbejdsområder med administreret virtuelt netværk
Opret et administreret privat slutpunkt for Azure Event Hubs-destinationen. Du kan finde detaljerede instruktioner i Opret og brug administrerede private slutpunkter i Microsoft Fabric – Microsoft Fabric.
Når det administrerede private slutpunkt er godkendt, kan brugerne begynde at sende logge og målepunkter til azure Event Hubs-destinationen.