Huomautus
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Fabric Apache Sparkin diagnostiikan emitter-laajennus on kirjasto, jonka avulla Apache Spark -sovellukset voivat lähettää lokeja, tapahtumalokeja ja mittareita useisiin kohteisiin, kuten Azuren lokianalytiikkaan, Azure-tallennustilaan ja Azure-tapahtumatoimintoihin.
Tässä opetusohjelmassa opit määrittämään Spark-lokit ja -mittarit ja käyttämään niitä Log Analytics -toiminnossa Fabricissa. Kun määritys on valmis, voit kerätä ja analysoida Apache Spark -sovelluksen mittareita ja lokeja Log Analytics -työtilassa.
Määritä työtilan tiedot
Määritä tarvittavat tiedot Fabricissa seuraavasti.
Vaihe 1: Log Analytics -työtilan luominen
Luo tämä työtila jollakin seuraavista resursseista:
- Luo työtila Azure-portaali.
- Luo työtila Azuren komentorivikäyttöliittymän avulla.
- Luo ja määritä työtila Azure Monitorissa PowerShellin avulla.
Vaihe 2: Fabric-ympäristön artefaktin luominen Apache Spark -määrityksen avulla
Voit määrittää Sparkin luomalla Fabric-ympäristön artefaktin ja valitsemalla jonkin seuraavista vaihtoehdoista:
Vaihtoehto 1: Määritä Log Analytics -työtilan tunnuksella ja avaimella
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 tarvittavat ominaisuudet.
-
<EMITTER_NAME>
: Mittarin nimi. -
<LOG_ANALYTICS_WORKSPACE_ID>
: Log Analytics -työtilan tunnus. -
<LOG_ANALYTICS_WORKSPACE_KEY>
: Log Analytics -avain. Löydät tämän Azure-portaali kohdasta >>
spark.synapse.diagnostic.emitters: <EMITTER_NAME> spark.synapse.diagnostic.emitter.<EMITTER_NAME>.type: "AzureLogAnalytics" spark.synapse.diagnostic.emitter.<EMITTER_NAME>.categories: "Log,EventLog,Metrics" spark.synapse.diagnostic.emitter.<EMITTER_NAME>.workspaceId: <LOG_ANALYTICS_WORKSPACE_ID> spark.synapse.diagnostic.emitter.<EMITTER_NAME>.secret: <LOG_ANALYTICS_WORKSPACE_KEY> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Vaihtoehtoisesti voit käyttää samoja määrityksiä kuin Azure Synapse käyttämällä seuraavia ominaisuuksia tai valitsemalla valintanauhasta Lisää .yml ja lataa yaml-mallitiedosto.
spark.synapse.logAnalytics.enabled: "true" spark.synapse.logAnalytics.workspaceId: <LOG_ANALYTICS_WORKSPACE_ID> spark.synapse.logAnalytics.secret: <LOG_ANALYTICS_WORKSPACE_KEY> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
-
Tallenna ja julkaise muutoksia.
Vaihtoehto 2: Määrittäminen Azure Key Vaultin avulla
Huomautus
Sinun on myönnettävä lukusalaisuuden käyttöoikeus käyttäjille, jotka lähettävät Apache Spark -sovelluksia. Katso lisätietoja artikkelista Key Vaultin avainten, varmenteiden ja salaisten koodien käyttö Azuren roolipohjaisella käytön hallinnalla.
Jos haluat määrittää Azure Key Vaultin tallentamaan työtilan avaimen, toimi seuraavasti:
Siirry Key Vaultiin Azure-portaali.
Valitse avainsäilön asetussivulla Secrets ja sitten Luo/Tuo.
Anna Luo salainen koodi -näytössä seuraavat arvot:
-
Nimi: Anna salaisen koodin nimi. Anna oletusasennuksille
SparkLogAnalyticsSecret
. -
Arvo: Anna
<LOG_ANALYTICS_WORKSPACE_KEY>
salaiselle kohteelle -arvo. - Jätä muut arvot oletusarvoihin. Valitse sitten Luo.
-
Nimi: Anna salaisen koodin nimi. Anna oletusasennuksille
Fabric-ympäristön artefaktin luominen Fabricissa
Lisää seuraavat Spark-ominaisuudet , jotka sisältävät vastaavat arvot ympäristön artefaktille, tai valitse Lisää .yml Ympäristö-artefaktin valintanauhasta ladataksesi yaml-mallitiedoston , joka sisältää seuraavat Spark-ominaisuudet.
-
<EMITTER_NAME>
: Mittarin nimi. -
<LOG_ANALYTICS_WORKSPACE_ID>
: Log Analytics -työtilan tunnus. -
<AZURE_KEY_VAULT_URI>
: Määrittämäsi Key Vaultin URI. -
<AZURE_KEY_VAULT_SECRET_KEY_NAME>
(valinnainen): Tämä on työtilan avaimen avainsäilössä oleva salaisen koodin nimi. Oletusarvo onSparkLogAnalyticsSecret
.
// Spark properties for EMITTER_NAME spark.synapse.diagnostic.emitters <EMITTER_NAME> spark.synapse.diagnostic.emitter.<EMITTER_NAME>.type: "AzureLogAnalytics" spark.synapse.diagnostic.emitter.<EMITTER_NAME>.categories: "Log,EventLog,Metrics" spark.synapse.diagnostic.emitter.<EMITTER_NAME>.workspaceId: <LOG_ANALYTICS_WORKSPACE_ID> spark.synapse.diagnostic.emitter.<EMITTER_NAME>.secret.keyVault: <AZURE_KEY_VAULT_URI> spark.synapse.diagnostic.emitter.<EMITTER_NAME>.secret.keyVault.secretName: <AZURE_KEY_VAULT_SECRET_KEY_NAME> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Vaihtoehtoisesti voit käyttää samoja määrityksiä kuin Azure Synapse, käytä seuraavia ominaisuuksia tai lataa yaml-mallitiedosto valitsemalla valintanauhan .yml Lisää.
spark.synapse.logAnalytics.enabled: "true" spark.synapse.logAnalytics.workspaceId: <LOG_ANALYTICS_WORKSPACE_ID> spark.synapse.logAnalytics.keyVault.name: <AZURE_KEY_VAULT_URI> spark.synapse.logAnalytics.keyVault.key.secret: <AZURE_KEY_VAULT_SECRET_KEY_NAME> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Huomautus
Voit myös tallentaa työtilan tunnuksen Key Vaultiin. Määritä salaisen koodin nimeksi
SparkLogAnalyticsWorkspaceId
tai määritä työtilan tunnuksen salasanan nimi -määrityksenspark.synapse.logAnalytics.keyVault.key.workspaceId
avulla.-
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
Huomautus
Vain työtilan järjestelmänvalvojat voivat määrittää ympäristön työtilan oletusasetukseksi.
Kun se on asetettu, siitä tulee oletusympäristö kaikille muistikirjoille ja Spark-työmäärityksiä työtilassa. Lisätietoja on kohdassa Fabric-työtilan asetukset.
Ympäristön liittäminen muistikirjoihin tai Spark-työmäärityksiä varten:
- Siirry muistikirjaasi tai Spark-työn määritelmään Fabricissa.
- Valitse Ympäristö-valikko Aloitus-välilehdestä ja valitse määritetty ympäristö.
- Määritystä käytetään Spark-istunnon aloittamisen jälkeen.
Ympäristön määrittäminen työtilan oletusasetukseksi:
- Valitse 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.
Lähetä Apache Spark -sovellus ja tarkastele lokeja ja mittareita
Apache Spark -sovelluksen lähettäminen:
Lähetä Apache Spark -sovellus siihen liittyvän ympäristön kanssa, joka määritettiin edellisessä vaiheessa. Voit tehdä sen seuraavilla tavoilla:
- Suorita muistikirja Fabricissa.
- Lähetä Apache Spark -erätyö Apache Spark -työmäärityksen kautta.
- Suorita Spark-aktiviteetit jaksoissa.
Siirry määritettyyn Log Analytics -työtilaan ja tarkastele sitten sovelluksen mittareita ja lokeja, kun Apache Spark -sovellus käynnistyy.
Mukautettujen sovelluslokien kirjoittaminen
Voit käyttää Apache Log4j -kirjastoa mukautettujen lokien kirjoittamiseen. Tässä on esimerkkejä Scalasta ja PySparkista:
Skalaa esimerkki:
%%spark
val logger = org.apache.log4j.LogManager.getLogger("com.contoso.LoggerExample")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
//log exception
try {
1/0
} catch {
case e:Exception =>logger.warn("Exception", e)
}
// run job for task level metrics
val data = sc.parallelize(Seq(1,2,3,4)).toDF().count()
PySpark-esimerkki:
%%pyspark
logger = sc._jvm.org.apache.log4j.LogManager.getLogger("com.contoso.PythonLoggerExample")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
Tietojen kyseleminen Kustolla
Kyselyn tekeminen Apache Spark -tapahtumista:
SparkListenerEvent_CL
| where fabricWorkspaceId_g == "{FabricWorkspaceId}" and artifactId_g == "{ArtifactId}" and fabricLivyId_g == "{LivyId}"
| order by TimeGenerated desc
| limit 100
Kyselyn tekeminen Spark-sovellusohjaimen ja -suoritustiedoston lokeista:
SparkLoggingEvent_CL
| where fabricWorkspaceId_g == "{FabricWorkspaceId}" and artifactId_g == "{ArtifactId}" and fabricLivyId_g == "{LivyId}"
| order by TimeGenerated desc
| limit 100
Kyselyn tekeminen Apache Spark -mittareista:
SparkMetrics_CL
| where fabricWorkspaceId_g == "{FabricWorkspaceId}" and artifactId_g == "{ArtifactId}" and fabricLivyId_g == "{LivyId}"
| where name_s endswith "jvm.total.used"
| summarize max(value_d) by bin(TimeGenerated, 30s), executorId_s
| order by TimeGenerated asc
Hälytysten luominen ja hallinta
Käyttäjät voivat tehdä kyselyn arvioidakseen mittareita ja lokeja määritetyllä tiheydellä ja ampuakseen ilmoituksen tulosten perusteella. Lisätietoja on artikkelissa Lokiilmoitusten luominen, tarkasteleminen ja hallinta Azure Monitorin avulla.
Fabric-työtilat ja hallittu näennäisverkko
Azure Log Analytics -kohdetta ei tällä hetkellä voi valita Spark-lokien ja mittarien päästöjen kohdesijainniksi hallitussa näennäisverkossa, koska hallittu yksityinen päätepiste ei tue Log Analytics -funktiota tietolähteenä.
Käytettävissä olevat Apache Spark -määritykset
Log Analytics -tietojen määrittäminen spark.synaspe.diagnostic.emitter.*
etuliitteen avulla.
Log Analytics -tietojen määrittäminen spark.synapse.logAnalytics.*
etuliitteen avulla.
Konfiguraation nimi | Default value | Kuvaus |
---|---|---|
spark.synapse.logAnalytics.enabled |
false | Jos haluat ottaa Log Analytics -nielun käyttöön Spark-sovelluksille, true. Muussa tapauksessa arvo on epätosi. |
spark.synapse.logAnalytics.workspaceId |
- | Kohdesijainti Log Analytics -työtilan tunnus. |
spark.synapse.logAnalytics.secret |
- | Kohdesijainti Log Analytics -työtilasalaisuus. |
spark.synapse.logAnalytics.keyVault.name |
- | Log Analytics -tunnuksen ja avaimen Key Vaultin URI-osoite. |
spark.synapse.logAnalytics.keyVault.key.workspaceId |
SparkLogAnalyticsWorkspaceId | Log Analytics -työtilatunnuksen salainen Key Vault -nimi. |
spark.synapse.logAnalytics.keyVault.key.secret |
SparkLogAnalyticsSecret | Log Analytics -työtilan Key Vaultin salaisen koodin nimi. |
spark.synapse.logAnalytics.uriSuffix |
ods.opinsights.azure.com | Kohdesijainti Log Analytics -työtila URI-jälkiliitettä. Jos työtilasi ei ole Azuren yleisessä käytössä, sinun on päivitettävä URI-jälkiliite vastaavan pilvipalvelun mukaan. |
spark.synapse.logAnalytics.filter.eventName.match |
- | Valinnainen. Pilkuin eroteltujen spark-tapahtumien nimien avulla voit määrittää, mitä tapahtumia kerätään. Esimerkki: SparkListenerJobStart,SparkListenerJobEnd . |
spark.synapse.logAnalytics.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.logAnalytics.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 |
tosi | Pakollinen. Tätä Spark-ominaisuutta käytetään pyydettäessä suoritettavan Spark-istunnon pakottamiseen. |
Huomautus
- 21Vianetin operoiman Microsoft Azuren
spark.synapse.logAnalytics.uriSuffix
tuleebe ods.opinsights.azure.cn
. - Azure Governmentin
spark.synapse.logAnalytics.uriSuffix
-parametrin tulee ollaods.opinsights.azure.us
. - Missä tahansa pilvipalvelussa Azurea lukuun ottamatta
spark.synapse.logAnalytics.keyVault.name
parametrin tulee olla Key Vaultin täydellinen toimialuenimi (FQDN). EsimerkiksiAZURE_KEY_VAULT_NAME.vault.usgovcloudapi.net
sovellukselle AzureUS Kunta.
Usein kysytyt kysymykset
Miksi Log Analytics ei saa lokeja tai luo Asiakas-taulukkoa?
Jos Log Analytics -työtilasi ei vastaanota lokeja tai Asiakas-taulukkoa ei luoda, suorita vianmääritys seuraavasti:
Vahvista lokianalyysin määritys -: Varmista, että Log Analytics -työtilan tiedot on määritetty oikein Spark-sovelluksessasi. Voit tarkistaa määritykset siirtymällä Spark-käyttöliittymään tai Spark History Serveriin, siirtymällä Ympäristö-välilehteen ja tarkistamalla asetukset Spark-ominaisuudet-kohdassa.
Tarkista käyttöoikeudet -:
- Vahvista, että Log Analyticsilla on tarvittavat kirjoitusoikeudet.
- Jos KeyVault on mukana, varmista, että KeyVault-lukuoikeudet on määritetty oikein asianomaiselle palvelulle tai käyttäjälle.
tarkastaa tietorajoitukset: Fabric lähettää lokitiedot Azure Monitoriin HTTP Data Collector -ohjelmointirajapinnan avulla. Azure Monitor Data Collection -ohjelmointirajapintaan lähetettyjä tietoja koskevat tietyt rajoitukset:
- Enintään 30 Mt julkaisua kohden Azure Monitor Data Collector -ohjelmointirajapintaan. Tämä on yksittäisen julkaisun kokorajoitus. Jos yksittäisen julkaisun tiedot ylittävät 30 Mt, tiedot tulee jakaa pienempiin paloihin ja lähettää samanaikaisesti.
- Enintään 32 kt kenttien arvoille. Jos kentän arvo on suurempi kuin 32 kt, tiedot katkaistaan.
- Suositeltava enintään 50 kenttää annetulle tyypille. Tämä on käytännöllinen raja käytettävyyden ja hakukokemuksen näkökulmasta.
- Log Analytics -työtilojen taulukot tukevat vain enintään 500 saraketta.
- Enintään 45 merkkiä sarakkeiden nimissä.
Miten voin vahvistaa, että Log Analytics -käyttöoikeudet on määritetty oikein?
Varmista, että Log Analytics voi vastaanottaa lokeja, varmista seuraavat käyttöoikeudet:
Log Analyticsin kirjoitusoikeudet:
- Kirjaudu sisään Azure-portaaliin ja siirry Log Analytics -työtilaan.
- Vahvista Käyttöoikeuksien valvonta (IAM) -osiossa, että käyttäjälle, palvelun päänimelle tai sovellukselle on määritetty "Log Analytics Contributor" tai "Contributor"-rooli.
KeyVaultin lukuoikeudet (jos sovellettavissa):
- Jos lokeihin liittyy KeyVault, siirry KeyVaultin Käyttöoikeuskäytännöt- tai Käyttöoikeuksien valvonta (IAM) -osaan.
- Varmista, että kyseisellä käyttäjällä tai palvelun päänimellä on lukuoikeudet, kuten Key Vault Reader -rooli. Jos käyttöoikeudet on määritetty virheellisesti, ota yhteyttä Azuren järjestelmänvalvojaan roolimääritysten muokkaamiseksi ja odota käyttöoikeuksien synkronointia (tämä voi kestää muutamia minuutteja).
Miksi Spark-istunnon käynnistäminen hidastuu, kun nämä spark-ominaisuudet on määritetty?
Tämä johtuu siitä, että olet määrittänyt spark.fabric.pools.skipStarterPool: true, joka ohittaa Starter Poolin (eräänlainen live-pool) ja käyttää sen sijaan pyydettäessä suoritettavaa varantoa Spark-istunnon aloittamiseen. Spark-istunnon aloittaminen pyydettäessä -varannossa kestää yleensä noin 3 minuuttia.
Syynä on se, että diagnostiikkakirjasto edellyttää tiettyjen määritysten käyttöönottoa Spark-istunnon käynnistyksen yhteydessä. Tätä prosessia tukevat vain pyydettäessä suoritettavat varannot, sillä ne luodaan dynaamisesti käynnistyksen aikana. Sitä vastoin reaaliaikaisen varannon istunnot on esi aloitettu, eivätkä ne voi käyttää näitä määrityksiä alustuksen aikana. Saat lisätietoja Fabric Spark -käsittelystä artikkelista Apache Spark compute for Data Engineering and Data Science.