Indsaml dine Apache Spark-programlogge og -målepunkter ved hjælp af Azure Storage-konto (prøveversion)
Udvidelsen Fabric Apache Spark-diagnosticeringsudleder er et bibliotek, der gør det muligt for Apache Spark-programmer at sende logge, hændelseslogge og målepunkter til flere destinationer, herunder Azure Log Analytics, Azure Storage og Azure Event Hubs.
I dette selvstudium lærer du, hvordan du bruger udvidelsen fabric Apache Spark-diagnosticeringsudledere til at sende Apache Spark-programlogge, hændelseslogge og målepunkter til din Azure Storage-konto.
Indsaml logge og målepunkter til lagerkonto
Trin 1: Opret en lagerkonto
Hvis du vil indsamle diagnosticeringslogge og målepunkter, kan du bruge en eksisterende Azure Storage-konto. Hvis du ikke har en, kan du oprette en Azure blob Storage-konto eller oprette en lagerkonto, der skal bruges sammen med Azure Data Lake Storage Gen2.
Trin 2: Opret en Fabric-miljøartefakt med Apache Spark-konfiguration
Mulighed 1: Konfigurer med Azure Storage URI og Adgangsnøgle
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: MyStorageBlob spark.synapse.diagnostic.emitter.MyStorageBlob.type: "AzureStorage" spark.synapse.diagnostic.emitter.MyStorageBlob.categories: "DriverLog,ExecutorLog,EventLog,Metrics" spark.synapse.diagnostic.emitter.MyStorageBlob.uri: "https://<my-blob-storage>.blob.core.windows.net/<container-name>/<folder-name>" spark.synapse.diagnostic.emitter.MyDestination1.auth: "AccessKey" spark.synapse.diagnostic.emitter.MyDestination1.secret: <storage-access-key> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Udfyld følgende parametre i konfigurationsfilen:
<my-blob-storage>
,<container-name>
,<folder-name>
,<storage-access-key>
. Du kan finde flere oplysninger om disse parametre under Konfigurationer af Azure Storage.
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
<storage-access-key>
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 uploade yaml-eksempelfilen , som omfatter følgende Spark-egenskaber.
spark.synapse.diagnostic.emitters: <MyStorageBlob> spark.synapse.diagnostic.emitter.MyStorageBlob.type: "AzureStorage" spark.synapse.diagnostic.emitter.MyStorageBlob.categories: "DriverLog,ExecutorLog,EventLog,Metrics" spark.synapse.diagnostic.emitter.MyStorageBlob.uri: "https://<my-blob-storage>.blob.core.windows.net/<container-name>/<folder-name>" spark.synapse.diagnostic.emitter.MyStorageBlob.auth: "AccessKey" spark.synapse.diagnostic.emitter.MyStorageBlob.secret.keyVault: <AZURE_KEY_VAULT_NAME> spark.synapse.diagnostic.emitter.MyStorageBlob.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:
<my-blob-storage>
,<container-name>
,<folder-name>
,<AZURE_KEY_VAULT_NAME>
,<AZURE_KEY_VAULT_SECRET_KEY_NAME>
. Du kan finde flere oplysninger om disse parametre under Konfigurationer af Azure Storage.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.
Trin 4: Få vist logfilfilerne på Azure Storage-kontoen
Når du har sendt et job til den konfigurerede Spark-session, kan du få vist logfilerne og målepunkterne på destinationslagerkontoen. Loggene gemmes i tilsvarende stier baseret på forskellige programmer, der identificeres af <workspaceId>.<fabricLivyId>
. Alle logfiler er i JSON Lines-format (også kendt som newline-afgrænset JSON eller ndjson), hvilket er praktisk til databehandling.
Tilgængelige konfigurationer
Variantkonfiguration | Beskrivelse |
---|---|
spark.synapse.diagnostic.emitters |
Krævet. De kommaseparerede destinationsnavne for diagnosticeringsudledere. F.eks. MyDest1,MyDest2 |
spark.synapse.diagnostic.emitter.<destination>.type |
Krævet. Indbygget destinationstype. Hvis du vil aktivere Destination for Azure Storage, AzureStorage skal du være inkluderet i dette felt. |
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>.auth |
Krævet. AccessKey til brug af godkendelse af adgangsnøgle til lagerkonto. SAS til godkendelse af delte adgangssignaturer . |
spark.synapse.diagnostic.emitter.<destination>.uri |
Krævet. Destinations-blobobjektbeholdermappe-uri'en. Skal stemme overens med mønsteret https://<my-blob-storage>.blob.core.windows.net/<container-name>/<folder-name> . |
spark.synapse.diagnostic.emitter.<destination>.secret |
Valgfrit. Hemmelighedsindholdet (AccessKey eller SAS). |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Påkrævet, hvis .secret ikke er angivet. Navnet på Azure Key Vault , hvor hemmeligheden (AccessKey eller SAS) er gemt. |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName |
Påkrævet, hvis .secret.keyVault er angivet. Det hemmelige Navn på Azure Key Vault, hvor hemmeligheden (AccessKey eller SAS) 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 |
spark.fabric.pools.skipStarterPools |
Krævet. Denne Spark-egenskab bruges til at gennemtvinge en Spark-session efter behov. Du skal angive værdien til True , når du bruger standardgruppen, for at udløse bibliotekerne for at sende logge og målepunkter. |
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 Blob Storage-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 Blob Storage-destinationen.