Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Diagnostikutfärdartillägget för Fabric Apache Spark är ett bibliotek som gör det möjligt för Apache Spark-program att generera loggar, händelseloggar och mått till flera mål, inklusive Azure Log Analytics, Azure Storage och Azure Event Hubs.
I den här självstudien får du lära dig hur du använder tillägget För diagnostikemitterare i Fabric Apache Spark för att skicka Apache Spark-programloggar, händelseloggar och mått till ditt Azure Storage-konto.
Samla in loggar och mått till lagringskontot
Steg 1: Skapa ett lagringskonto
Om du vill samla in diagnostikloggar och mått kan du använda ett befintligt Azure Storage-konto. Om du inte har något kan du skapa ett Azure Blob Storage-konto eller skapa ett lagringskonto som ska användas med Azure Data Lake Storage Gen2.
Steg 2: Skapa en infrastrukturmiljöartefakt med Apache Spark-konfiguration
Alternativ 1: Konfigurera med Azure Storage-URI och åtkomstnyckel
Skapa en infrastrukturmiljöartefakt i infrastrukturresurser
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: 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: <storage-access-key> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Fyll i följande parametrar i konfigurationsfilen:
<my-blob-storage>
,<container-name>
,<folder-name>
, .<storage-access-key>
Mer information om dessa parametrar finns i Azure Storage-konfigurationer.
Alternativ 2: Konfigurera med Azure Key Vault
Kommentar
Känt problem: Det går inte att starta en session med alternativ 2 preliminärt. För närvarande förhindrar lagring av hemligheter i Key Vault Spark-sessioner från att starta. Prioritera konfigurationen med hjälp av den metod som beskrivs i alternativ 1.
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
<storage-access-key>
för hemligheten. - Lämna standardvärdena för de andra alternativen. Välj sedan Skapa.
Skapa en infrastrukturmiljöartefakt i infrastrukturresurser.
Lägg till följande Spark-egenskaper. Eller välj Lägg till från .yml i menyfliksområdet för att ladda upp yaml-exempelfilen som innehåller följande Spark-egenskaper.
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.
Fyll i följande parametrar i konfigurationsfilen:
<my-blob-storage>
,<container-name>
,<folder-name>
,<AZURE_KEY_VAULT_NAME>
, .<AZURE_KEY_VAULT_SECRET_KEY_NAME>
Mer information om dessa parametrar finns i Azure Storage-konfigurationer.Spara och publicera ändringarna.
Steg 3: Koppla miljöartefakten till notebook-filer eller spark-jobbdefinitioner eller ange den som standard för arbetsytan
Så här kopplar du miljön till notebook- eller Spark-jobbdefinitioner:
- Navigera till den specifika notebook-filen eller Spark-jobbdefinitionen i Infrastrukturresurser.
- 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 Infrastrukturresurser.
- Hitta Spark-inställningarna i inställningarna för arbetsytan (inställningen Arbetsyta –> Dataingenjör ing/Science –> Spark-inställningar).
- Välj fliken Miljö och välj miljön med diagnostik spark-egenskaper konfigurerade och klicka på Spara.
Kommentar
Endast arbetsyteadministratörer kan hantera konfigurationer av arbetsytor. Ändringar som görs här gäller för alla notebook-filer och Spark-jobbdefinitioner som är kopplade till arbetsyteinställningarna. Mer information finns i Inställningar för infrastrukturarbetsyta.
Steg 4: Visa loggfilerna i Azure Storage-kontot
När du har skickat ett jobb till den konfigurerade Spark-sessionen kan du visa loggarna och måttfilerna i mållagringskontot. Loggarna lagras i motsvarande sökvägar baserat på olika program som identifieras av <workspaceId>.<fabricLivyId>
. Alla loggfiler är i JSON Lines-format (kallas även newline-avgränsad JSON eller ndjson), vilket är praktiskt för databearbetning.
Tillgängliga konfigurationer
Konfiguration | beskrivning |
---|---|
spark.synapse.diagnostic.emitters |
Obligatoriskt. Kommaavgränsade målnamn för diagnostikemittare. Till exempel: MyDest1,MyDest2 |
spark.synapse.diagnostic.emitter.<destination>.type |
Obligatoriskt. Inbyggd måltyp. Om du vill aktivera Azure Storage-mål AzureStorage måste du inkluderas i det här fältet. |
spark.synapse.diagnostic.emitter.<destination>.categories |
Valfritt. De kommaavgränsade valda loggkategorierna. Tillgängliga värden är DriverLog , ExecutorLog , EventLog , Metrics . Om det inte anges är standardvärdet alla kategorier. |
spark.synapse.diagnostic.emitter.<destination>.auth |
Obligatoriskt.
AccessKey för att använda åtkomstnyckelauktorisering för lagringskonto.
SAS för auktorisering av signaturer för delad åtkomst. |
spark.synapse.diagnostic.emitter.<destination>.uri |
Obligatoriskt. Målblobcontainerns mapp-URI. Ska matcha mönstret https://<my-blob-storage>.blob.core.windows.net/<container-name>/<folder-name> . |
spark.synapse.diagnostic.emitter.<destination>.secret |
Valfritt. Det hemliga innehållet (AccessKey eller SAS). |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Krävs om .secret inte har angetts. Azure Key Vault-namnet där hemligheten (AccessKey eller SAS) 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 (AccessKey eller SAS) lagras. |
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match |
Valfritt. De kommaavgränsade spark-händelsenamnen kan du ange vilka händelser som ska samlas in. Till exempel: SparkListenerApplicationStart,SparkListenerApplicationEnd |
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match |
Valfritt. De kommaavgränsade Log4j-loggningsnamnen kan du ange 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. |
Exempel på loggdata
Här är en exempelloggpost 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"
//...
}
}
Infrastrukturarbetsytor med hanterat virtuellt nätverk
Skapa en hanterad privat slutpunkt för Azure Blob Storage-målet. 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 generera loggar och mått till Azure Blob Storage-målet.