Apache Spark -sovellusten lokien ja -mittareiden kerääminen Azuren tapahtumatoiminnoilla (esikatselu)
Fabric Apache Spark -diagnostiikan emitter-laajennus on kirjasto, jonka avulla Apache Spark -sovellukset voivat lähettää lokeja, tapahtumalokeja ja mittareita eri kohteisiin, kuten Azure Log Analyticsiin, Azure-tallennus ja Azure Event Hubsiin.
Tässä opetusohjelmassa opit käyttämään Fabric Apache Spark -diagnostiikan emitter-laajennusta Apache Spark -sovelluslokien, tapahtumalokien ja mittareiden lähettämiseen Azure-tapahtumatoimintoihisi.
Lokien ja mittareiden kerääminen Azure-tapahtumatoimintoihin
Vaihe 1: Luo Azure-tapahtumatoimintoesiintymä
Voit kerätä diagnostiikkalokeja ja -mittareita käyttämällä aiemmin luotua Azure-tapahtumatoimintoesiintymää. Jos sinulla ei ole tapahtumatoimintoa, voit luoda tapahtumatoiminnon.
Vaihe 2: Fabric-ympäristön artefaktin luominen Apache Spark -määrityksen avulla
Vaihtoehto 1: Määritä Azure Event Hubsin yhteysmerkkijonolla
Fabric-ympäristön artefaktin luominen Fabricissa
Lisää seuraavat Spark-ominaisuudet sopivilla arvoilla ympäristön artefaktiin tai valitse Valintanauhan .yml ja lataa yaml-mallitiedosto , joka sisältää jo seuraavat ominaisuudet.
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.
Täytä
<connection-string>
määritystiedoston parametrit. Lisätietoja on artikkelissa Azure-tapahtumatoimintojen määritykset.
Vaihtoehto 2: Määrittäminen Azure Key Vaultin avulla
Huomautus
Tunnettu ongelma: Istunnon käynnistäminen ei onnistu tilapäisesti vaihtoehdolla 2. Tällä hetkellä salaisten koodien tallentaminen Key Vaultiin estää Spark-istuntojen käynnistymisen. Priorisoi sen määrittäminen vaihtoehdossa 1 kuvatulla tavalla.
Varmista, että Apache Spark -sovelluksia lähettäviin käyttäjiin myönnetään lukusalaisuuden käyttöoikeudet. Katso lisätietoja artikkelista Key Vaultin avainten, varmenteiden ja salaisten koodien käyttö Azuren roolipohjaisella käytön hallinnalla.
Azure Key Vaultin määrittäminen työtilan avaimen tallentamista varten:
Luo Key Vault ja siirry siihen Azure-portaali.
Valitse avainsäilön asetussivulla Secrets ja sitten Luo/Tuo.
Valitse Luo salainen koodi -näytössä seuraavat arvot:
- Nimi: Anna salaisen koodin nimi.
- Arvo: Anna
<connection-string>
salaiselle kohteelle -arvo. - Jätä muut arvot oletusarvoihin. Valitse sitten Luo.
Luo Fabric-ympäristön artefakti Fabricissa.
Lisää seuraavat Spark-ominaisuudet. Voit myös ladata yaml-mallitiedoston, joka sisältää seuraavat Spark-ominaisuudet, valitsemalla valintanauhan Lisää .yml.
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.
Täytä määritystiedostoon seuraavat parametrit:
<AZURE_KEY_VAULT_NAME>
,<AZURE_KEY_VAULT_SECRET_KEY_NAME>
. Lisätietoja näistä parametreista on artikkelissa Azure-tapahtumatoimintojen määritykset.Tallenna ja julkaise muutoksia.
Vaihe 3: Liitä ympäristön artefakti muistikirjoihin tai Spark-työn määritelmiin tai määritä se työtilan oletusasetukseksi
Ympäristön liittäminen muistikirjoihin tai Spark-työmäärityksiä varten:
- Siirry tiettyyn muistikirjaan tai Spark-työmääritykseen Fabricissa.
- Valitse Ympäristö-valikko Aloitus-välilehdestä ja valitse ympäristö, jossa on määritetyt diagnostiikan Spark-ominaisuudet.
- Määritystä käytetään, kun aloitat Spark-istunnon.
Ympäristön määrittäminen työtilan oletusasetukseksi:
- Siirry kohtaan Työtilan asetukset Fabricissa.
- Etsi Spark-asetukset työtilan asetuksista (työtilan asetus –> Tietotekniikka/tiede –> Spark-asetukset).
- Valitse Ympäristö-välilehti , valitse ympäristö, jossa on määritetty diagnostiikan spark-ominaisuudet, ja valitse Tallenna.
Huomautus
Vain työtilan järjestelmänvalvojat voivat hallita työtilan määrityksiä. Tässä tehdyt muutokset koskevat kaikkia muistikirjoja ja työtilan asetuksiin liitettyjä Spark-työmäärityksiä. Lisätietoja on kohdassa Fabric-työtilan asetukset.
Käytettävissä olevat konfiguraatiot
Konfigurointi | Description |
---|---|
spark.synapse.diagnostic.emitters |
Pakollinen. Diagnostiikan päästöjen pilkuin erotellut kohdenimet. |
spark.synapse.diagnostic.emitter.<destination>.type |
Pakollinen. Sisäinen kohdetyyppi. Jos haluat ottaa Azure-tapahtumatoiminnot käyttöön, arvon tulee olla AzureEventHub . |
spark.synapse.diagnostic.emitter.<destination>.categories |
Valinnainen. Pilkuin erotellut valitut lokiluokat. Käytettävissä olevat arvot ovat DriverLog , ExecutorLog , EventLog , Metrics . Jos sitä ei ole määritetty, oletusarvo on kaikki luokat. |
spark.synapse.diagnostic.emitter.<destination>.secret |
Valinnainen. Azure Event Hubs -esiintymän yhteysmerkkijono. Tämän kentän pitäisi vastata tätä mallia. Endpoint=sb://<FQDN>/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<PathName> |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Pakollinen, jos .secret ei ole määritetty. Azure Key Vaultin nimi, johon salainen koodi (yhteysmerkkijono) tallennetaan. |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName |
Pakollinen, jos .secret.keyVault on määritetty. Azure Key Vaultin salaisen koodin nimi, johon salainen koodi (yhteysmerkkijono) on tallennettu. |
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match |
Valinnainen. Pilkuin eroteltujen spark-tapahtumien nimien avulla voit määrittää, mitä tapahtumia kerätään. Esimerkki: SparkListenerApplicationStart,SparkListenerApplicationEnd |
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match |
Valinnainen. Pilkuin eroteltujen Log4j-lokikirjaajien nimien avulla voit määrittää, mitä lokeja kerätään. Esimerkki: org.apache.spark.SparkContext,org.example.Logger |
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match |
Valinnainen. Pilkuin eroteltujen spark-mittarin nimien jälkiliitteiden avulla voit määrittää kerättävät mittarit. Esimerkki: jvm.heap.used |
Huomautus
Azure Eventhub -esiintymän yhteysmerkkijonon tulee aina sisältää EntityPath
, joka on Azure Event Hubs -esiintymän nimi.
Lokitietomalli
Tässä on mallilokitietue JSON-muodossa:
{
"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-työtilat hallitulla näennäisverkolla
Luo hallittu yksityinen päätepiste Azure-tapahtumatoimintoihin. Tarkat ohjeet ovat artikkelissa Hallittujen yksityisten päätepisteiden luominen ja käyttäminen Microsoft Fabricissa – Microsoft Fabric.
Kun hallittu yksityinen päätepiste on hyväksytty, käyttäjät voivat alkaa lähettää lokeja ja mittareita Azure-tapahtumatoimintoihin.