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
Vytvoření artefaktu prostředí infrastruktury v prostředcích infrastruktury
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:
Vytvořte trezor klíčů na webu Azure Portal a přejděte do trezoru klíčů.
Na stránce nastavení trezoru klíčů vyberte Tajné kódy a pak vygenerovat/importovat.
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.
Vytvořte artefakt prostředí infrastruktury v prostředcích infrastruktury.
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.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:
- Přejděte do konkrétního poznámkového bloku nebo definice úlohy Sparku v prostředcích infrastruktury.
- Na kartě Domů vyberte nabídku Prostředí a vyberte prostředí s nakonfigurovanými vlastnostmi Sparku diagnostiky.
- Konfigurace se použije při spuštění relace Sparku.
Nastavení prostředí jako výchozího pracovního prostoru:
- Přejděte do nastavení pracovního prostoru v prostředcích infrastruktury.
- Najděte nastavení Sparku v nastavení pracovního prostoru (nastavení pracovního prostoru –> Datoví technici/Věda –> Nastavení Sparku).
- 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 AzureEventHub hodnota . |
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 EntityPath
ná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.