Samla in loggar och mått för Apache Spark-program med Hjälp av Azure Event Hubs (förhandsversion)
Diagnostikemitteringstillägget för Fabric Apache Spark är ett bibliotek som gör det möjligt för Apache Spark-applikationer att generera loggar, händelseloggar och metrik till olika destinationer, inklusive Azure Log Analytics, Azure Storage och Azure Event Hubs.
Denna handledning lär dig hur du använder diagnostikemitterartillägget i Fabric Apache Spark för att skicka loggar för Apache Spark-program, evenemangsloggar och mått till dina Azure Event Hubs.
Samla in loggar och mått till Azure Event Hubs
Steg 1: Skapa en Azure Event Hubs-instans
Om du vill samla in diagnostikloggar och mått kan du använda en befintlig Azure Event Hubs-instans. Om du inte har någon kan du skapa en händelsehubb.
Steg 2: Skapa en infrastrukturmiljöartefakt med Apache Spark-konfiguration
Alternativ 1: Konfigurera med Anslutningssträng för Azure Event Hubs
Skapa en miljöartefakt i Fabric
Lägg till följande Spark-egenskaper med lämpliga värden i miljöartefakten eller välj Lägg till från .yml i menyfliksområdet för att ladda ned yaml-exempelfilen som redan innehåller följande 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.
Fyll i parametrarna
<connection-string>
i konfigurationsfilen. Mer information finns i Azure Event Hubs-konfigurationer.
Alternativ 2: Konfigurera med Azure Key Vault
Anteckning
Se till att användare som skickar Apache Spark-program beviljas läshemliga behörigheter. Mer information finns i Ge åtkomst till Key Vault-nycklar, certifikat och hemligheter med en rollbaserad åtkomstkontroll i Azure.
Så här konfigurerar du Azure Key Vault för lagring av arbetsytenyckeln:
Skapa och gå till ditt nyckelvalv i Azure Portal.
På inställningssidan för nyckelvalvet väljer du Hemligheter och sedan Generera/importera.
Välj följande värden på skärmen Skapa en hemlighet:
- Namn: Ange ett namn för hemligheten.
-
Värde: Ange
<connection-string>
för hemligheten. - Lämna standardvärdena för de andra alternativen. Välj sedan Skapa.
Skapa en miljöartefakt i Fabric.
Lägg till följande Spark-egenskaper. Eller välj Lägg till från .yml i menyfliksområdet för att ladda ned yaml-exempelfilen, som innehåller följande 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_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.
Fyll i följande parametrar i konfigurationsfilen:
<AZURE_KEY_VAULT_URI>
,<AZURE_KEY_VAULT_SECRET_KEY_NAME>
. Mer information om dessa parametrar finns i Azure Event Hubs-konfigurationer.Spara och publicera ändringarna.
Steg 3: Koppla miljöartefakten till notebook-filer eller Spark-jobbdefinitioner eller ange den som standard för arbetsytan
Anteckning
Endast arbetsyteadministratörer kan ange en miljö som standard för en arbetsyta.
När den har angetts blir den standardmiljö för alla notebook-filer och Spark-jobbdefinitioner på arbetsytan. Mer information finns i Inställningar för Fabric-arbetsyta.
För att bifoga miljön till anteckningsboks- eller Spark-jobbdefinitioner:
- Navigera till den specifika notebook-filen eller Spark-jobbdefinitionen i Fabric.
- Välj menyn Miljö på fliken Start och välj miljön med de konfigurerade Spark-egenskaperna för diagnostik.
- Konfigurationen tillämpas när du startar en Spark-session.
Så här anger du miljön som standard för arbetsytan:
- Gå till Arbetsyteinställningar i Fabric.
- Hitta Spark-inställningarna i arbetsytans inställningar (Arbetsytans inställningar –> Datateknik/Vetenskap –> Spark-inställningar).
- Välj fliken Miljö, välj miljön där diagnostikens Spark-egenskaper är konfigurerade, och klicka på Spara.
Tillgängliga konfigurationer
Konfiguration | beskrivning |
---|---|
spark.synapse.diagnostic.emitters |
Obligatoriskt. Kommaavgränsade målnamn för diagnostikemittare. |
spark.synapse.diagnostic.emitter.<destination>.type |
Obligatoriskt. Inbyggd måltyp. Om du vill aktivera Azure Event Hubs-målet ska värdet vara AzureEventHub . |
spark.synapse.diagnostic.emitter.<destination>.categories |
Valfritt. De valda loggkategorierna som är avgränsade med kommatecken. Tillgängliga värden är DriverLog , ExecutorLog , EventLog , Metrics . Om det inte anges är standardvärdet alla kategorier. |
spark.synapse.diagnostic.emitter.<destination>.secret |
Valfritt. Anslutningssträng för Azure Event Hubs-instansen. Det här fältet ska matcha det här mönstret Endpoint=sb://<FQDN>/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<PathName> |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Krävs om .secret inte har angetts.
Azure Key Vault URI där hemligheten (anslutningssträngen) lagras. |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName |
Krävs om .secret.keyVault anges. Det hemliga namnet på Azure Key Vault där hemligheten (anslutningssträng) lagras. |
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match |
Valfritt. De kommaavgränsade spark-händelsenamnen, kan du specificera vilka händelser som ska samlas in. Till exempel: SparkListenerApplicationStart,SparkListenerApplicationEnd |
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match |
Valfritt. Med de kommaavgränsade Log4j-loggningsnamnen kan du specificera vilka loggar som ska samlas in. Till exempel: org.apache.spark.SparkContext,org.example.Logger |
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match |
Valfritt. Med kommaavgränsade spark-måttnamnssuffix kan du ange vilka mått som ska samlas in. Till exempel: jvm.heap.used |
spark.fabric.pools.skipStarterPools |
Obligatoriskt. Den här Spark-egenskapen används för att tvinga fram en Spark-session på begäran. Du bör ange värdet till true när du använder standardpoolen för att utlösa biblioteken för att generera loggar och mått. |
Kommentar
Anslutningssträngen för Azure EventHub-instansen ska alltid innehålla EntityPath
, som är namnet på Azure Event Hubs-instansen.
Exempel på loggdata
Här är en exempelloggpost i JSON-format:
{
"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"
// ...
}
}
Fabric-arbetsytor med hanterat virtuellt nätverk
Skapa en hanterad privat slutpunkt för målet Azure Event Hubs. Detaljerade anvisningar finns i Skapa och använda hanterade privata slutpunkter i Microsoft Fabric – Microsoft Fabric.
När den hanterade privata slutpunkten har godkänts kan användarna börja sända ut loggar och metrik till Azure Event Hubs.