Jaa


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

  1. Fabric-ympäristön artefaktin luominen Fabricissa

  2. 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:

  1. Luo Key Vault ja siirry siihen Azure-portaali.

  2. Valitse avainsäilön asetussivulla Secrets ja sitten Luo/Tuo.

  3. 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.
  4. Luo Fabric-ympäristön artefakti Fabricissa.

  5. 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ä.

  6. 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:

  1. Siirry tiettyyn muistikirjaan tai Spark-työmääritykseen Fabricissa.
  2. Valitse Ympäristö-valikko Aloitus-välilehdestä ja valitse ympäristö, jossa on määritetyt diagnostiikan Spark-ominaisuudet.
  3. Määritystä käytetään, kun aloitat Spark-istunnon.

Ympäristön määrittäminen työtilan oletusasetukseksi:

  1. Siirry kohtaan Työtilan asetukset Fabricissa.
  2. Etsi Spark-asetukset työtilan asetuksista (työtilan asetus –> Tietotekniikka/tiede –> Spark-asetukset).
  3. 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. SASjaettujen 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.

Seuraavat vaiheet