Jaa


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

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

  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 <connection-string> 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 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.

  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.

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.

Seuraavat vaiheet