Sdílet prostřednictvím


Shromažďování protokolů a metrik aplikací Apache Spark pomocí služby Azure Event Hubs (Preview)

Rozšíření diagnostického emitoru Fabric Apache Spark je knihovna, která umožňuje aplikacím Apache Spark vysílat protokoly, protokoly událostí a metriky do různých cílů, včetně Azure Log Analytics, Azure Storage a Azure Event Hubs. V tomto kurzu se dozvíte, jak pomocí rozšíření diagnostického emitoru Fabric Apache Spark odesílat aplikační protokoly, protokoly událostí a metriky Apache Spark do služby Azure Event Hubs.

Shromažďování protokolů a metrik do služby Azure Event Hubs

Krok 1: Vytvoření instance služby Azure Event Hubs

Ke shromažďování diagnostických protokolů a metrik můžete použít existující instanci služby Azure Event Hubs. Pokud ho nemáte, můžete vytvořit centrum událostí.

Krok 2: Vytvoření artefaktu prostředí infrastruktury s konfigurací Apache Sparku

Možnost 1: Konfigurace s připojovacím řetězcem služby Azure Event Hubs

  1. Vytvoření artefaktu prostředí v rámci Fabricu

  2. Přidejte následující vlastnosti Sparku s příslušnými hodnotami do artefaktu daného prostředí, nebo vyberte Přidat z .yml na pásu karet a stáhněte ukázkový soubor YAML, který již obsahuje následující vlastnosti.

    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.
    

    <connection-string> Vyplňte parametry v konfiguračním souboru. Další informace najdete v tématu Konfigurace služby Azure Event Hubs.

Možnost 2: Konfigurace pomocí služby Azure Key Vault

Poznámka:

Ujistěte se, že uživatelům, kteří odesílají aplikace Apache Spark, mají udělená oprávnění ke čtení tajných kódů. Další informace najdete v tématu Poskytnutí přístupu ke klíčům, certifikátům a tajným kódům služby Key Vault pomocí řízení přístupu na základě role v Azure.

Konfigurace služby Azure Key Vault pro ukládání klíče pracovního prostoru:

  1. Vytvořte trezor klíčů na webu Azure Portal a přejděte do trezoru klíčů.

  2. Na stránce nastavení trezoru klíčů vyberte Tajné kódy a pak vygenerovat/importovat.

  3. Na obrazovce Vytvoření tajného kódu zvolte následující hodnoty:

    • Název: Zadejte název tajného kódu.
    • Hodnota: Zadejte <connection-string> tajný kód.
    • U ostatních hodnot ponechte jejich výchozí nastavení. Pak vyberte Vytvořit.
  4. Vytvořte artefakt prostředí ve Fabricu.

  5. Přidejte následující vlastnosti Sparku. Nebo vyberte Přidat z .yml na pásu karet a stáhněte ukázkový soubor yaml, který obsahuje následující vlastnosti sparku.

    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_URI>
    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.
    

    Do konfiguračního souboru zadejte následující parametry: <AZURE_KEY_VAULT_URI>, <AZURE_KEY_VAULT_SECRET_KEY_NAME>. Další podrobnosti o těchto parametrech najdete v konfiguracích služby Azure Event Hubs.

  6. Uložte a publikujte změny.

Krok 3: Připojte artefakt prostředí k poznámkovým blokům nebo definicím úloh Sparku, nebo ho nastavte jako výchozí pro pracovní prostor.

Poznámka:

  • Jako výchozí prostředí pro pracovní prostor mohou určit pouze správci pracovního prostoru.
  • Po nastavení se stane výchozím prostředím pro všechny poznámkové bloky a definice úloh Sparku v rámci pracovního prostoru. Další informace najdete v tématu Nastavení pracovního prostoru infrastruktury.

Připojení prostředí k definicím úloh pro Poznámkové bloky nebo Spark:

  1. Přejděte do konkrétního poznámkového bloku nebo definice úlohy Sparku ve Fabric.
  2. Na kartě Domů vyberte nabídku Prostředí a vyberte prostředí s nakonfigurovanými vlastnostmi Sparku diagnostiky.
  3. Konfigurace se použije při spuštění relace Sparku.

Nastavení prostředí jako výchozího pracovního prostoru:

  1. Přejděte do nastavení pracovního prostoru ve Fabric.
  2. Najděte nastavení Sparku v nastavení pracovního prostoru (nastavení pracovního prostoru –> Datoví technici/Věda –> Nastavení Sparku).
  3. Vyberte kartu Prostředí a zvolte prostředí s nakonfigurovanými vlastnostmi Sparku pro diagnostiku, a poté vyberte Uložit.

Dostupné konfigurace

Konfigurace Popis
spark.synapse.diagnostic.emitters Požadováno. Cílové názvy diagnostických emitorů oddělené čárkami.
spark.synapse.diagnostic.emitter.<destination>.type Požadováno. Předdefinovaný cílový typ Pokud chcete povolit destinaci Azure Event Hubs, hodnota by měla být AzureEventHub.
spark.synapse.diagnostic.emitter.<destination>.categories Nepovinné. Vybrané kategorie protokolu oddělené čárkami. Mezi dostupné hodnoty patří DriverLog, ExecutorLog, EventLog, Metrics. Pokud není nastavená, výchozí hodnota je všechny kategorie.
spark.synapse.diagnostic.emitter.<destination>.secret Nepovinné. Připojovací řetězec instance služby Azure Event Hubs. Toto pole by mělo odpovídat tomuto vzoru. Endpoint=sb://<FQDN>/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<PathName>
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault Povinné, pokud .secret není zadáno. Azure Key Vault URI, ve kterém je uložen tajný klíč (připojovací řetězec).
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName Vyžaduje se, pokud .secret.keyVault je zadáno. Název tajného kódu služby Azure Key Vault, ve kterém je tajný klíč (připojovací řetězec) uložený.
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match Nepovinné. Názvy událostí Spark oddělené čárkami, můžete určit, které události se mají shromažďovat. Příklad: SparkListenerApplicationStart,SparkListenerApplicationEnd
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match Nepovinné. Názvy loggerů Log4j oddělené čárkami, pomocí kterých můžete určit, které protokoly se mají shromažďovat. Příklad: org.apache.spark.SparkContext,org.example.Logger
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match Nepovinné. Pokud použijete přípony názvů sparkových metrik oddělených čárkami, můžete určit, které metriky se mají shromažďovat. Příklad: jvm.heap.used
spark.fabric.pools.skipStarterPools Požadováno. Tato vlastnost Sparku se používá k vynucení relace Sparku na požádání. Při použití výchozího fondu byste měli nastavit hodnotu na true, aby knihovny zaznamenávaly protokoly a metriky.

Poznámka:

Připojovací řetězec instance Azure EventHubu by měl vždy obsahovat EntityPath, což je název instance služby Azure Event Hubs.

Ukázka dat protokolu

Tady je ukázkový záznam protokolu ve formátu JSON:

{
  "timestamp": "2025-02-28T09:13:57.978Z",
  "category": "Log|EventLog|Metrics",
  "fabricLivyId": "<fabric-livy-id>",
  "applicationId": "<application-id>",
  "applicationName": "<application-name>",
  "executorId": "<driver-or-executor-id>",
  "userId": "<the-submitter-user-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": "2025-02-28T09:13:57.941Z",
    "message": "ApplicationAttemptId: appattempt_1740734011890_0001_000001",
    "logger_name": "org.apache.spark.deploy.yarn.ApplicationMaster",
    "level": "INFO",
    "thread_name": "main"
    // ...
  }
}

Jakmile se diagnostika vygeneruje do centra událostí Azure, můžete toto centrum událostí použít jako zdroj ve streamu událostí infrastruktury ke zpracování nebo směrování dat.

Pracovní prostory Fabric se spravovanou virtuální sítí.

Vytvořte spravovaný privátní koncový bod pro cílovou službu Azure Event Hubs. Podrobné pokyny najdete v tématu Vytvoření a použití spravovaných privátních koncových bodů v Microsoft Fabric – Microsoft Fabric.

Po schválení spravovaného privátního koncového bodu můžou uživatelé začít generovat protokoly a metriky do cílové služby Azure Event Hubs.

Další kroky