Apache Spark -sovellusten lokien ja -mittareiden kerääminen Azure-tallennustilin avulla (esikatselu)
Fabric Apache Sparkin diagnostiikan emitter-laajennus on kirjasto, jonka avulla Apache Spark -sovellukset voivat lähettää lokeja, tapahtumalokeja ja mittareita useisiin 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 mittarien lähettämiseen Azure-tallennus-tilillesi.
Lokien ja mittareiden kerääminen tallennustilille
Vaihe 1: Tallennustilin luominen
Voit kerätä diagnostiikkalokeja ja -mittareita käyttämällä aiemmin luotua Azure-tallennus tiliä. Jos sinulla ei ole sellaista, voit luoda Azure Blob -säilön tilin tai luoda tallennustilin, jota voit käyttää Azure Data Lake Storage Gen2:ssa.
Vaihe 2: Fabric-ympäristön artefaktin luominen Apache Spark -määrityksen avulla
Vaihtoehto 1: määritä Azure-tallennus URI:n ja käyttöavaimen avulla
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: 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.MyDestination1.auth: "AccessKey" spark.synapse.diagnostic.emitter.MyDestination1.secret: <storage-access-key> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Täytä määritystiedostoon seuraavat parametrit:
<my-blob-storage>
,<container-name>
,<folder-name>
,<storage-access-key>
. Lisätietoja näistä parametreista on artikkelissa Azure-tallennus määrityksiä.
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
<storage-access-key>
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 .yml Lisää.
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.
Täytä määritystiedostoon seuraavat parametrit:
<my-blob-storage>
, ,<container-name>
<folder-name>
, ,<AZURE_KEY_VAULT_NAME>
<AZURE_KEY_VAULT_SECRET_KEY_NAME>
. Lisätietoja näistä parametreista on artikkelissa Azure-tallennus määrityksiä.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.
Vaihe 4: Tarkastele lokitiedostoja Azure-tallennustilillä
Kun olet lähettänyt työn määritettyun Spark-istuntoon, voit tarkastella lokeja ja mittaritiedostoja kohdesäilötilillä. Lokit tallennetaan vastaaviin polkuihin, jotka perustuvat eri sovelluksiin, jotka on tunnistanut <workspaceId>.<fabricLivyId>
. Kaikki lokitiedostot ovat JSON Lines -muodossa (uusirivillä eroteltu JSON tai ndjson), mikä on kätevää tietojenkäsittelyä varten.
Käytettävissä olevat konfiguraatiot
Konfigurointi | Description |
---|---|
spark.synapse.diagnostic.emitters |
Pakollinen. Diagnostiikan päästöjen pilkuin erotellut kohdenimet. Esimerkki: MyDest1,MyDest2 |
spark.synapse.diagnostic.emitter.<destination>.type |
Pakollinen. Sisäinen kohdetyyppi. Azure-tallennuskohteen käyttöönotto edellyttää, AzureStorage että sisällytät tähän kenttään. |
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>.auth |
Pakollinen. AccessKey tallennustilin käyttöoikeusavaimen valtuutuksen käyttöön. SAS jaettujen käyttöoikeuksien allekirjoitusten valtuutusta varten. |
spark.synapse.diagnostic.emitter.<destination>.uri |
Pakollinen. Kohteen blob-säilökansion URI. Kaavan tulisi vastata kaavaa https://<my-blob-storage>.blob.core.windows.net/<container-name>/<folder-name> . |
spark.synapse.diagnostic.emitter.<destination>.secret |
Valinnainen. Salaisen koodin (AccessKey tai SAS) sisältö. |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Pakollinen, jos .secret ei ole määritetty. Azure Key Vaultin nimi, johon salaisuus (AccessKey tai SAS) 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 (AccessKey tai SAS) 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 |
spark.fabric.pools.skipStarterPools |
Pakollinen. Tätä Spark-ominaisuutta käytetään pyydettäessä suoritettavan Spark-istunnon pakottamiseen. Määritä arvoksi True , kun käytät oletusvarantoa, jotta kirjastot käynnistyvät ja jotta lokit ja mittarit käynnistyvät. |
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 Blob -kohdesäilölle. 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 aloittaa lokien ja mittarien lähettämisen Azure Blob -säilöön.