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 Apache Sparku infrastruktury je knihovna, která umožňuje aplikacím Apache Sparku generovat 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 Apache Sparku pro Prostředky infrastruktury odesílat protokoly aplikací Apache Sparku, protokoly událostí a metriky 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í infrastruktury v prostředcích infrastruktury

  2. Přidejte následující vlastnosti Sparku s příslušnými hodnotami do artefaktu prostředí nebo vyberte Přidat z .yml na pásu karet 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 se službou Azure Key Vault

Poznámka:

Známý problém: Nelze spustit relaci pomocí možnosti 2 prozatímně. Ukládání tajných kódů ve službě Key Vault v současné době brání spuštění relací Sparku. Určete prioritu konfigurace pomocí metody popsané v možnosti 1.

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í infrastruktury v prostředcích infrastruktury.

  5. Přidejte následující vlastnosti Sparku. Nebo vyberte Přidat z .yml na pásu karet 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_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.
    

    Do konfiguračního souboru zadejte následující parametry: <AZURE_KEY_VAULT_NAME>, <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řipojení artefaktu prostředí k poznámkovému bloku nebo definicím úloh Sparku nebo nastavení jako výchozího pracovního prostoru

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

  1. Přejděte do konkrétního poznámkového bloku nebo definice úlohy Sparku v prostředcích infrastruktury.
  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 v prostředcích infrastruktury.
  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 diagnostiky a klikněte na Uložit.

Poznámka:

Konfigurace pracovních prostorů můžou spravovat jenom správci pracovního prostoru. Změny provedené zde budou platit pro všechny poznámkové bloky a definice úloh Sparku připojené k nastavení pracovního prostoru. Další informace najdete v tématu Nastavení pracovního prostoru infrastruktury.

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 Povinný: Předdefinovaný cílový typ Pokud chcete povolit cíl služby Azure Event Hubs, měla by být AzureEventHubhodnota .
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é. Instance služby Azure Event Hubs připojovací řetězec. 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. Název trezoru klíčů Azure, 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ých čá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 protokolovacího nástroje oddělené čárkami, 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é. 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

Poznámka:

Instance Azure EventHubu připojovací řetězec by měla vždy obsahovat EntityPathnázev instance Azure Event Hubs.

Ukázka dat protokolu

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

{
  "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"
    //...
  }
}

Pracovní prostory infrastruktury 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