Delen via


Logboeken en metrische gegevens van Uw Apache Spark-toepassingen verzamelen met behulp van Azure Event Hubs (preview)

De diagnostische emitterextensie voor Apache Spark fabric is een bibliotheek waarmee Apache Spark-toepassingen logboeken, gebeurtenislogboeken en metrische gegevens kunnen verzenden naar verschillende bestemmingen, waaronder Azure Log Analytics, Azure Storage en Azure Event Hubs.

In deze zelfstudie leert u hoe u de diagnostische emitterextensie voor Apache Spark fabric gebruikt om Apache Spark-toepassingslogboeken, gebeurtenislogboeken en metrische gegevens naar uw Azure Event Hubs te verzenden.

Logboeken en metrische gegevens verzamelen in Azure Event Hubs

Stap 1: Een Azure Event Hubs-exemplaar maken

Als u diagnostische logboeken en metrische gegevens wilt verzamelen, kunt u een bestaand Azure Event Hubs-exemplaar gebruiken. Als u er nog geen hebt, kunt u een Event Hub maken.

Stap 2: Een infrastructuuromgevingartefact maken met Apache Spark-configuratie

Optie 1: Configureren met Azure Event Hubs-verbindingsreeks

  1. Een Fabric Environment Artifact maken in Fabric

  2. Voeg de volgende Spark-eigenschappen met de juiste waarden toe aan het omgevingsartefact of selecteer Toevoegen uit .yml op het lint om het yaml-voorbeeldbestand te downloaden dat al de volgende eigenschappen bevat.

    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.
    

    Vul de <connection-string> parameters in het configuratiebestand in. Zie Azure Event Hubs-configuraties voor meer informatie.

Optie 2: Configureren met Azure Key Vault

Notitie

Bekend probleem: kan een sessie niet starten met optie 2 voorlopig. Op dit moment voorkomt het opslaan van geheimen in Key Vault dat Spark-sessies worden gestart. Geef prioriteit aan het configureren ervan met behulp van de methode die wordt beschreven in optie 1.

Zorg ervoor dat gebruikers die Apache Spark-toepassingen verzenden, leesgeheimmachtigingen krijgen. Zie Toegang bieden tot Key Vault-sleutels, -certificaten en -geheimen met een op rollen gebaseerd toegangsbeheer van Azure voor meer informatie.

Azure Key Vault configureren voor het opslaan van de werkruimtesleutel:

  1. Maak en ga naar uw sleutelkluis in Azure Portal.

  2. Selecteer geheimen op de instellingenpagina voor de sleutelkluis en vervolgens Genereren/importeren.

  3. Kies in het scherm Een geheim maken de volgende waarden:

    • Naam: Voer de naam in het voor het geheim.
    • Waarde: Voer het <connection-string> voor het geheim in.
    • Houd voor de overige waarden de standaardwaarden aan. Selecteer vervolgens Maken.
  4. Maak een Fabric Environment Artifact in Fabric.

  5. Voeg de volgende Spark-eigenschappen toe. Of selecteer Toevoegen uit .yml op het lint om het yaml-voorbeeldbestand te downloaden, waaronder de volgende Spark-eigenschappen.

    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.
    

    Vul de volgende parameters in het configuratiebestand in: <AZURE_KEY_VAULT_NAME>, <AZURE_KEY_VAULT_SECRET_KEY_NAME>. Raadpleeg de Configuraties van Azure Event Hubs voor meer informatie over deze parameters.

  6. Sla wijzigingen op en publiceer deze.

Stap 3: het omgevingsartefact koppelen aan notebooks of Spark-taakdefinities, of instellen als de standaardinstelling voor de werkruimte

De omgeving koppelen aan Notebooks of Spark-taakdefinities:

  1. Navigeer naar de specifieke notebook- of Spark-taakdefinitie in Fabric.
  2. Selecteer het menu Omgeving op het tabblad Start en selecteer de omgeving met de geconfigureerde Spark-eigenschappen voor diagnostische gegevens.
  3. De configuratie wordt toegepast wanneer u een Spark-sessie start.

De omgeving instellen als de standaardinstelling voor de werkruimte:

  1. Navigeer naar Werkruimte-instellingen in Fabric.
  2. Zoek de Spark-instellingen in uw werkruimte-instellingen (werkruimte-instelling -> Data-engineer ing/Science -> Spark-instellingen).
  3. Selecteer het tabblad Omgeving en kies de omgeving met diagnostische spark-eigenschappen die zijn geconfigureerd en klik op Opslaan.

Notitie

Alleen werkruimtebeheerders kunnen werkruimteconfiguraties beheren. Wijzigingen die hier worden aangebracht, zijn van toepassing op alle notebooks en Spark-taakdefinities die zijn gekoppeld aan de werkruimte-instellingen. Zie Instellingen voor infrastructuurwerkruimten voor meer informatie.

Beschikbare configuraties

Configuratie Beschrijving
spark.synapse.diagnostic.emitters Vereist. De door komma's gescheiden doelnamen van diagnostische emitters.
spark.synapse.diagnostic.emitter.<destination>.type Vereist. Ingebouwd doeltype. Als u de Azure Event Hubs-bestemming wilt inschakelen, moet de waarde zijn AzureEventHub.
spark.synapse.diagnostic.emitter.<destination>.categories Optioneel. De door komma's gescheiden geselecteerde logboekcategorieën. Beschikbare waarden zijn onder andere DriverLog, ExecutorLog, EventLog. Metrics Als deze niet is ingesteld, is de standaardwaarde alle categorieën.
spark.synapse.diagnostic.emitter.<destination>.secret Optioneel. Het Azure Event Hubs-exemplaar verbindingsreeks. Dit veld moet overeenkomen met dit patroon Endpoint=sb://<FQDN>/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<PathName>
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault Vereist als .secret dit niet is opgegeven. De naam van de Azure Key Vault waar het geheim (verbindingsreeks) is opgeslagen.
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName Vereist als .secret.keyVault dit is opgegeven. De naam van het Azure Key Vault-geheim waarin het geheim (verbindingsreeks) is opgeslagen.
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match Optioneel. De namen van door komma's gescheiden Spark-gebeurtenissen kunt u opgeven welke gebeurtenissen moeten worden verzameld. Bijvoorbeeld: SparkListenerApplicationStart,SparkListenerApplicationEnd
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match Optioneel. De door komma's gescheiden Log4j-logboeknamen kunt u opgeven welke logboeken moeten worden verzameld. Bijvoorbeeld: org.apache.spark.SparkContext,org.example.Logger
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match Optioneel. Met de door komma's gescheiden naamachtervoegsels voor spark-metrische gegevens kunt u opgeven welke metrische gegevens moeten worden verzameld. Bijvoorbeeld:jvm.heap.used

Notitie

Het Azure EventHub-exemplaar verbindingsreeks moet altijd de EntityPathnaam van het Azure Event Hubs-exemplaar bevatten.

Voorbeeld van logboekgegevens

Hier volgt een voorbeeld van een logboekrecord in JSON-indeling:

{
  "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-werkruimten met beheerd virtueel netwerk

Maak een beheerd privé-eindpunt voor azure Event Hubs. Raadpleeg beheerde privé-eindpunten maken en gebruiken in Microsoft Fabric - Microsoft Fabric voor gedetailleerde instructies.

Zodra het beheerde privé-eindpunt is goedgekeurd, kunnen gebruikers beginnen met het verzenden van logboeken en metrische gegevens naar de Doel-Azure Event Hubs.

Volgende stappen