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
Een Fabric Environment Artifact maken in Fabric
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:
Maak en ga naar uw sleutelkluis in Azure Portal.
Selecteer geheimen op de instellingenpagina voor de sleutelkluis en vervolgens Genereren/importeren.
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.
Maak een Fabric Environment Artifact in Fabric.
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.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:
- Navigeer naar de specifieke notebook- of Spark-taakdefinitie in Fabric.
- Selecteer het menu Omgeving op het tabblad Start en selecteer de omgeving met de geconfigureerde Spark-eigenschappen voor diagnostische gegevens.
- De configuratie wordt toegepast wanneer u een Spark-sessie start.
De omgeving instellen als de standaardinstelling voor de werkruimte:
- Navigeer naar Werkruimte-instellingen in Fabric.
- Zoek de Spark-instellingen in uw werkruimte-instellingen (werkruimte-instelling -> Data-engineer ing/Science -> Spark-instellingen).
- 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 EntityPath
naam 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.