Samle inn Logger og måledata for Apache Spark-programmer ved hjelp av Azure Event Hubs (forhåndsversjon)
Fabric Apache Spark-diagnostisk emitterutvidelse er et bibliotek som gjør det mulig for Apache Spark-programmer å avgi logger, hendelseslogger og måledata til ulike destinasjoner, inkludert Azure Log Analytics, Azure Storage og Azure Event Hubs.
I denne opplæringen lærer du hvordan du bruker diagnoseutvidelsen Fabric Apache Spark til å sende Apache Spark-programlogger, hendelseslogger og måledata til Azure Event Hubs.
Samle logger og måledata til Azure Event Hubs
Trinn 1: Opprette en forekomst av Azure Event Hubs
Hvis du vil samle inn diagnoselogger og måledata, kan du bruke en eksisterende forekomst av Azure Event Hubs. Hvis du ikke har en, kan du opprette en hendelseshub.
Trinn 2: Opprette en stoffmiljøartefakt med Apache Spark-konfigurasjon
Alternativ 1: Konfigurer med Tilkoblingsstreng for Azure Event Hubs
Opprett en stoffmiljøartefakt i stoff
Legg til følgende Spark-egenskaper med de riktige verdiene i miljøartefakten, eller velg Legg til fra .yml på båndet for å laste ned eksempel-yaml-filen som allerede inneholder følgende egenskaper.
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.
<connection-string>
Fyll ut parameterne i konfigurasjonsfilen. Hvis du vil ha mer informasjon, kan du se Konfigurasjoner for Azure Event Hubs.
Alternativ 2: Konfigurer med Azure Key Vault
Merk
Kjent problem: Kan ikke starte en økt med alternativ 2 midlertidig. Lagring av hemmeligheter i Key Vault hindrer spark-økter i å starte. Prioriter konfigurasjonen ved hjelp av metoden som er beskrevet i alternativ 1.
Sørg for at brukere som sender inn Apache Spark-programmer, får lesehemmelige tillatelser. Hvis du vil ha mer informasjon, kan du se Gi tilgang til Key Vault-nøkler, sertifikater og hemmeligheter med en rollebasert tilgangskontroll i Azure.
Slik konfigurerer du Azure Key Vault for lagring av arbeidsområdenøkkelen:
Opprett og gå til nøkkelhvelvet i Azure-portalen.
Velg Hemmeligheter på innstillingssiden for nøkkelhvelvet, og generer /importer.
Velg følgende verdier på oppretting av en hemmelig skjerm:
- Navn: Skriv inn et navn for hemmeligheten.
-
Verdi: Skriv inn
<connection-string>
for hemmeligheten. - La de andre verdiene stå som standard. Velg deretter Opprett.
Opprett en stoffmiljøartefakt i stoff.
Legg til følgende Spark-egenskaper. Eller velg Legg til fra .yml på båndet for å laste ned eksempelfilen yaml, som inkluderer følgende Spark-egenskaper.
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.
Fyll ut følgende parametere i konfigurasjonsfilen:
<AZURE_KEY_VAULT_NAME>
,<AZURE_KEY_VAULT_SECRET_KEY_NAME>
. Hvis du vil ha mer informasjon om disse parameterne, kan du se konfigurasjoner for Azure Event Hubs.Lagre og publiser endringer.
Trinn 3: Legg ved miljøartefakten i notatblokker eller spark-jobbdefinisjoner, eller angi den som standard for arbeidsområdet
Slik legger du til miljøet i notatblokker eller spark-jobbdefinisjoner:
- Gå til den bestemte notatblokken eller Spark-jobbdefinisjonen i Fabric.
- Velg Miljø-menyen på Hjem-fanen, og velg miljøet med de konfigurerte spark-egenskapene for diagnose.
- Konfigurasjonen brukes når du starter en Spark-økt.
Slik angir du miljøet som standard for arbeidsområdet:
- Gå til Innstillinger for arbeidsområde i Stoff.
- Finn Spark-innstillingene i innstillingene for arbeidsområdet (innstillinger for arbeidsområde –> Dataingeniør ing/Vitenskap –> Spark-innstillinger).
- Velg Miljø-fanen , og velg miljøet med egenskaper for diagnosegnistegenskap konfigurert, og klikk Lagre.
Merk
Bare administratorer for arbeidsområder kan administrere arbeidsområdekonfigurasjoner. Endringer som gjøres her, gjelder for alle notatblokker og Spark-jobbdefinisjoner som er knyttet til innstillingene for arbeidsområdet. Hvis du vil ha mer informasjon, kan du se Innstillinger for stoffarbeidsområde.
Tilgjengelige konfigurasjoner
Konfigurasjon | Bekrivelse |
---|---|
spark.synapse.diagnostic.emitters |
Påkrevd. De kommadelte målnavnene for diagnosedemittere. |
spark.synapse.diagnostic.emitter.<destination>.type |
Påkrevd. Innebygd måltype. Hvis du vil aktivere målet for Azure Event Hubs, bør verdien være AzureEventHub . |
spark.synapse.diagnostic.emitter.<destination>.categories |
Valgfritt. De kommadelte valgte loggkategoriene. Tilgjengelige verdier inkluderer DriverLog , , ExecutorLog , EventLog Metrics . Hvis den ikke er angitt, er standardverdien alle kategorier. |
spark.synapse.diagnostic.emitter.<destination>.secret |
Valgfritt. Azure Event Hubs-forekomsten tilkoblingsstreng. Dette feltet skal samsvare med dette mønsteret Endpoint=sb://<FQDN>/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<PathName> |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Obligatorisk hvis .secret ikke er angitt. Azure Key-hvelvnavnet der hemmeligheten (tilkoblingsstreng) er lagret. |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName |
Obligatorisk hvis .secret.keyVault er angitt. Det hemmelige navnet på Azure Key-hvelvet der hemmeligheten (tilkoblingsstreng) er lagret. |
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match |
Valgfritt. Med kommadelt spark-hendelsesnavn kan du angi hvilke hendelser som skal samles inn. Eksempel: SparkListenerApplicationStart,SparkListenerApplicationEnd |
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match |
Valgfritt. De kommadelte Log4j-loggernavnene kan du angi hvilke logger som skal samles inn. Eksempel: org.apache.spark.SparkContext,org.example.Logger |
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match |
Valgfritt. De kommadelte spark-metriske navnesuffiksene kan du angi hvilke måledata som skal samles inn. Eksempel: jvm.heap.used |
Merk
Azure Eventhub-forekomsten tilkoblingsstreng alltid skal inneholde EntityPath
, som er navnet på Forekomsten av Azure Event Hubs.
Eksempel på loggdata
Her er en eksempelloggpost 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"
//...
}
}
Stoffarbeidsområder med administrert virtuelt nettverk
Opprett et administrert privat endepunkt for målhubene for Azure Event. Hvis du vil ha detaljerte instruksjoner, kan du se Opprette og bruke administrerte private endepunkter i Microsoft Fabric – Microsoft Fabric.
Når det administrerte private endepunktet er godkjent, kan brukere begynne å sende logger og måledata til målhubene for Azure Event.