Dela via


Övervaka Apache Spark-program med Azure Log Analytics

I den här självstudien får du lära dig hur du aktiverar Synapse Studio-anslutningsappen som är inbyggd i Log Analytics. Du kan sedan samla in och skicka Apache Spark-programmått och loggar till din Log Analytics-arbetsyta. Slutligen kan du använda en Azure Monitor-arbetsbok för att visualisera mått och loggar.

Konfigurera information om arbetsytan

Följ de här stegen för att konfigurera nödvändig information i Synapse Studio.

Steg 1: Skapa en Log Analytics-arbetsyta

Kontakta någon av följande resurser för att skapa den här arbetsytan:

Steg 2: Förbereda en Apache Spark-konfigurationsfil

Använd något av följande alternativ för att förbereda filen.

Alternativ 1: Konfigurera med Log Analytics-arbetsyte-ID och nyckel

Kopiera följande Apache Spark-konfiguration, spara den som spark_loganalytics_conf.txt och fyll i följande parametrar:

  • <LOG_ANALYTICS_WORKSPACE_ID>: Log Analytics-arbetsyte-ID.
  • <LOG_ANALYTICS_WORKSPACE_KEY>: Log Analytics-nyckel. Om du vill hitta det går du till Primärnyckel för Azure Log Analytics-arbetsyteagenter>>i Azure Portal.
spark.synapse.logAnalytics.enabled true
spark.synapse.logAnalytics.workspaceId <LOG_ANALYTICS_WORKSPACE_ID>
spark.synapse.logAnalytics.secret <LOG_ANALYTICS_WORKSPACE_KEY>

Alternativ 2: Konfigurera med Azure Key Vault

Kommentar

Du måste bevilja läshemlighetsbehörighet till de användare som skickar Apache Spark-program. Mer information finns i Ge åtkomst till Key Vault-nycklar, certifikat och hemligheter med en rollbaserad åtkomstkontroll i Azure. När du aktiverar den här funktionen i en Synapse-pipeline måste du använda alternativ 3. Detta är nödvändigt för att hämta hemligheten från Azure Key Vault med en hanterad identitet för arbetsytan.

Följ dessa steg för att konfigurera Azure Key Vault att lagra arbetsytenyckeln:

  1. Skapa och gå till ditt nyckelvalv i Azure Portal.

  2. På inställningssidan för nyckelvalvet väljer du Hemligheter.

  3. Välj Generera/Importera.

  4. Välj följande värden på skärmen Skapa en hemlighet:

    • Namn: Ange ett namn för hemligheten. Som standard anger du SparkLogAnalyticsSecret.
    • Värde: Ange <LOG_ANALYTICS_WORKSPACE_KEY> för hemligheten.
    • Lämna standardvärdena för de andra alternativen. Välj sedan Skapa.
  5. Kopiera följande Apache Spark-konfiguration, spara den som spark_loganalytics_conf.txt och fyll i följande parametrar:

    • <LOG_ANALYTICS_WORKSPACE_ID>: Log Analytics-arbetsytans ID.
    • <AZURE_KEY_VAULT_NAME>: Namnet på nyckelvalvet som du konfigurerade.
    • <AZURE_KEY_VAULT_SECRET_KEY_NAME> (valfritt): Det hemliga namnet i nyckelvalvet för arbetsytenyckeln. Standardvärdet är SparkLogAnalyticsSecret.
spark.synapse.logAnalytics.enabled true
spark.synapse.logAnalytics.workspaceId <LOG_ANALYTICS_WORKSPACE_ID>
spark.synapse.logAnalytics.keyVault.name <AZURE_KEY_VAULT_NAME>
spark.synapse.logAnalytics.keyVault.key.secret <AZURE_KEY_VAULT_SECRET_KEY_NAME>

Kommentar

Du kan också lagra arbetsyte-ID:t i Key Vault. Se föregående steg och lagra arbetsyte-ID:t med det hemliga namnet SparkLogAnalyticsWorkspaceId. Du kan också använda konfigurationen spark.synapse.logAnalytics.keyVault.key.workspaceId för att ange arbetsyte-ID:ts hemliga namn i Key Vault.

Alternativ 3. Konfigurera med en länkad tjänst

Kommentar

I det här alternativet måste du bevilja läshemlighetsbehörighet till arbetsytans hanterade identitet. Mer information finns i Ge åtkomst till Key Vault-nycklar, certifikat och hemligheter med en rollbaserad åtkomstkontroll i Azure.

Följ dessa steg för att konfigurera en länkad Key Vault-tjänst i Synapse Studio för lagring av arbetsytenyckeln:

  1. Följ alla steg i föregående avsnitt, "Alternativ 2".

  2. Skapa en länkad Key Vault-tjänst i Synapse Studio:

    a. Gå till Synapse Studio>Hantera>länkade tjänster och välj sedan Ny.

    b. Sök efter Azure Key Vault i sökrutan.

    c. Ange ett namn för den länkade tjänsten.

    d. Välj ditt nyckelvalv och välj Skapa.

  3. Lägg till ett spark.synapse.logAnalytics.keyVault.linkedServiceName objekt i Apache Spark-konfigurationen.

spark.synapse.logAnalytics.enabled true
spark.synapse.logAnalytics.workspaceId <LOG_ANALYTICS_WORKSPACE_ID>
spark.synapse.logAnalytics.keyVault.name <AZURE_KEY_VAULT_NAME>
spark.synapse.logAnalytics.keyVault.key.secret <AZURE_KEY_VAULT_SECRET_KEY_NAME>
spark.synapse.logAnalytics.keyVault.linkedServiceName <LINKED_SERVICE_NAME>

En lista över Apache Spark-konfigurationer finns i Tillgängliga Apache Spark-konfigurationer

Steg 3: Ladda upp din Apache Spark-konfiguration till en Apache Spark-pool

Kommentar

Det här steget ersätts med steg 4.

Du kan ladda upp konfigurationsfilen till Din Apache Spark-pool för Azure Synapse Analytics. I Synapse Studio:

  1. Välj Hantera>Apache Spark-pooler.

  2. Bredvid Apache Spark-poolen väljer du knappen ... .

  3. Välj Apache Spark-konfiguration.

  4. Välj Ladda upp och välj filen spark_loganalytics_conf.txt .

  5. Välj Ladda upp och välj sedan Använd.

    Skärmbild som visar konfigurationen av Spark-poolen.

Kommentar

Alla Apache Spark-program som skickas till Apache Spark-poolen använder konfigurationsinställningen för att skicka Apache Spark-programmått och -loggar till din angivna arbetsyta.

Steg 4: Skapa en Apache Spark-konfiguration

Du kan skapa en Apache Spark-konfiguration på din arbetsyta, och när du skapar notebook- eller Apache Spark-jobbdefinitionen kan du välja den Apache Spark-konfiguration som du vill använda med apache Spark-poolen. När du väljer den visas information om konfigurationen.

  1. Välj Hantera>Apache Spark-konfigurationer.

  2. Klicka på knappen Nytt för att skapa en ny Apache Spark-konfiguration eller klicka på Importera en lokal .json fil till din arbetsyta.

  3. Ny Apache Spark-konfigurationssida öppnas när du klickar på knappen Ny .

  4. Som Namn kan du ange önskat och giltigt namn.

  5. För Beskrivning kan du ange en beskrivning i den.

  6. För Anteckningar kan du lägga till anteckningar genom att klicka på knappen Nytt , och du kan även ta bort befintliga anteckningar genom att välja och klicka på knappen Ta bort .

  7. För Konfigurationsegenskaper anpassar du konfigurationen genom att klicka på knappen Lägg till för att lägga till egenskaper. Om du inte lägger till en egenskap använder Azure Synapse standardvärdet när det är tillämpligt.

    Skärmbild som skapar Spark-konfiguration.

Skicka ett Apache Spark-program och visa loggarna och måtten

Så här gör du:

  1. Skicka ett Apache Spark-program till Apache Spark-poolen som konfigurerades i föregående steg. Du kan använda något av följande sätt att göra det:

    • Kör en notebook-fil i Synapse Studio.
    • I Synapse Studio skickar du ett Apache Spark-batchjobb via en Apache Spark-jobbdefinition.
    • Kör en pipeline som innehåller Apache Spark-aktivitet.
  2. Gå till den angivna Log Analytics-arbetsytan och visa sedan programmåtten och loggarna när Apache Spark-programmet börjar köras.

Skriva anpassade programloggar

Du kan använda Apache Log4j-biblioteket för att skriva anpassade loggar.

Exempel för Scala:

%%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()

Exempel för PySpark:

%%pyspark
logger = sc._jvm.org.apache.log4j.LogManager.getLogger("com.contoso.PythonLoggerExample")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")

Använda exempelarbetsboken för att visualisera mått och loggar

  1. Ladda ned arbetsboken.

  2. Öppna och kopiera innehållet i arbetsbokens fil.

  3. I Azure Portal väljer du Log Analytics-arbetsytearbetsböcker>.

  4. Öppna den tomma arbetsboken. Använd läget Avancerad redigerare genom att< välja ikonen />.

  5. Klistra in all JSON-kod som finns.

  6. Välj Använd och välj sedan Klar redigering.

    Skärmbild som visar en ny arbetsbok.

    Skärmbild som visar hur du importerar en arbetsbok.

Skicka sedan ditt Apache Spark-program till den konfigurerade Apache Spark-poolen. När programmet har körts väljer du det program som körs i listrutan för arbetsboken.

Skärmbild som visar en arbetsbok.

Du kan anpassa arbetsboken. Du kan till exempel använda Kusto-frågor och konfigurera aviseringar.

Skärmbild som visar hur du anpassar en arbetsbok med en fråga och aviseringar.

Fråga efter data med Kusto

Följande är ett exempel på att köra frågor mot Apache Spark-händelser:

SparkListenerEvent_CL
| where workspaceName_s == "{SynapseWorkspace}" and clusterName_s == "{SparkPool}" and livyId_s == "{LivyId}"
| order by TimeGenerated desc
| limit 100 

Här är ett exempel på hur du kör frågor mot Apache Spark-programdrivrutinen och körloggarna:

SparkLoggingEvent_CL
| where workspaceName_s == "{SynapseWorkspace}" and clusterName_s == "{SparkPool}" and livyId_s == "{LivyId}"
| order by TimeGenerated desc
| limit 100

Och här är ett exempel på frågor mot Apache Spark-mått:

SparkMetrics_CL
| where workspaceName_s == "{SynapseWorkspace}" and clusterName_s == "{SparkPool}" and livyId_s == "{LivyId}"
| where name_s endswith "jvm.total.used"
| summarize max(value_d) by bin(TimeGenerated, 30s), executorId_s
| order by TimeGenerated asc

Skapa och hantera aviseringar

Användare kan fråga för att utvärdera mått och loggar med en angivna frekvens och utlösa en avisering baserat på resultaten. Mer information finns i Skapa, visa och hantera loggaviseringar med hjälp av Azure Monitor.

Synapse-arbetsyta med dataexfiltreringsskydd aktiverat

När Synapse-arbetsytan har skapats med dataexfiltreringsskydd aktiverat.

När du vill aktivera den här funktionen måste du skapa hanterade privata slutpunktsanslutningsbegäranden till Azure Monitor private link-omfång (A M P L S) i arbetsytans godkända Microsoft Entra-klienter.

Du kan följa stegen nedan för att skapa en hanterad privat slutpunktsanslutning till Azure Monitor private link-omfång (A M P L S):

  1. Om det inte finns någon befintlig A M P L S kan du följa konfigurationen av Azure Monitor Private Link-anslutningen för att skapa en.
  2. Gå till A M P L S i Azure Portal, på sidan Azure Monitor-resurser klickar du på Lägg till för att lägga till anslutning till din Azure Log Analytics-arbetsyta.
  3. Gå till Synapse Studio > Hantera > hanterade privata slutpunkter, klicka på knappen Ny , välj Azure Monitor Private Link Scopes och fortsätt.

    Skärmbild av skapa en M P L S-hanterad privat slutpunkt 1.

  4. Välj ditt Azure Monitor Private Link-omfång som du skapade och klicka på knappen Skapa .

    Skärmbild av skapa en M P L S-hanterad privat slutpunkt 2.

  5. Vänta några minuter på etablering av privata slutpunkter.
  6. Gå till din A M P L S i Azure Portal igen, på sidan Privata slutpunktsanslutningar väljer du den etablerade anslutningen och Godkänner.

Kommentar

  • A M P L S-objektet har ett antal gränser som du bör tänka på när du planerar din Private Link-konfiguration. Se A M P L S-gränser för en djupare granskning av dessa gränser.
  • Kontrollera om du har rätt behörighet att skapa en hanterad privat slutpunkt.

Nästa steg