Zbieranie dzienników i metryk aplikacji platformy Apache Spark przy użyciu usługi Azure Event Hubs (wersja zapoznawcza)
Rozszerzenie emitera diagnostycznego Apache Spark to biblioteka umożliwiająca aplikacjom Apache Spark emitowanie dzienników, dzienników zdarzeń i metryk do różnych miejsc docelowych, w tym do Azure Log Analytics, Azure Storage i Azure Event Hubs.
W tym samouczku dowiesz się, jak korzystać z rozszerzenia Fabric Apache Spark Diagnostic Emitter do wysyłania dzienników aplikacji, dzienników zdarzeń i metryk do usługi Azure Event Hubs.
Zbieranie dzienników i metryk do usługi Azure Event Hubs
Krok 1. Tworzenie wystąpienia usługi Azure Event Hubs
Aby zebrać dzienniki diagnostyczne i metryki, możesz użyć istniejącej instancji Azure Event Hubs. Jeśli go nie masz, możesz utworzyć centrum zdarzeń.
Krok 2: Tworzenie artefaktu środowiska Fabric z konfiguracją Apache Spark
Opcja 1. Konfigurowanie przy użyciu parametrów połączenia usługi Azure Event Hubs
Tworzenie artefaktu środowiska Fabric w platformie Fabric
Dodaj następujące właściwości platformy Spark z odpowiednimi wartościami do artefaktu środowiska lub wybierz pozycję Dodaj z .yml na wstążce, aby pobrać przykładowy plik yaml zawierający już następujące właściwości.
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>
Wypełnij parametry w pliku konfiguracji. Aby uzyskać więcej informacji, zobacz Konfiguracje usługi Azure Event Hubs.
Opcja 2. Konfigurowanie przy użyciu usługi Azure Key Vault
Uwaga
Upewnij się, że użytkownicy przesyłający aplikacje Apache Spark mają przyznane uprawnienia do odczytu sekretów. Aby uzyskać więcej informacji, zobacz Zapewnianie dostępu do kluczy, certyfikatów i wpisów tajnych usługi Key Vault za pomocą kontroli dostępu opartej na rolach platformy Azure.
Aby skonfigurować usługę Azure Key Vault do przechowywania klucza obszaru roboczego:
Utwórz magazyn kluczy i przejdź do magazynu kluczy w witrynie Azure Portal.
Na stronie ustawień magazynu kluczy wybierz Wpisy tajne, a następnie Generuj/Importuj.
Na ekranie Tworzenie wpisu tajnego wybierz następujące wartości:
- Nazwa: Wprowadź nazwę sekretu.
-
Wartość: Wprowadź
<connection-string>
dla sekretu. - Dla pozostałych opcji zostaw wartości domyślne. Następnie wybierz Utwórz.
Utwórz artefakt środowiska Fabric w Fabric.
Dodaj następujące właściwości platformy Spark. Możesz też wybrać pozycję Dodaj z .yml na wstążce, aby pobrać przykładowy plik yaml zawierający następujące właściwości Spark.
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.
Wypełnij następujące parametry w pliku konfiguracji:
<AZURE_KEY_VAULT_URI>
,<AZURE_KEY_VAULT_SECRET_KEY_NAME>
. Aby uzyskać więcej informacji na temat tych parametrów, zobacz Konfiguracje usługi Azure Event Hubs.Zapisz i opublikuj zmiany.
Krok 3. Dołączanie artefaktu środowiska do notesów lub definicji zadań platformy Spark lub ustawianie go jako domyślnego obszaru roboczego
Uwaga
Tylko administratorzy obszaru roboczego mogą wyznaczyć środowisko jako domyślne dla obszaru roboczego.
Po ustawieniu staje się ono domyślnym środowiskiem dla wszystkich notesów i definicji zadań platformy Spark w obszarze roboczym. Aby uzyskać więcej informacji, zobacz Ustawienia przestrzeni roboczej Fabric.
Aby załączyć środowisko do notesów lub definicji zadań Spark:
- Przejdź do określonego notesu lub definicji zadania Spark w aplikacji Fabric.
- Wybierz menu Środowisko na karcie Narzędzia główne i wybierz środowisko ze skonfigurowanymi właściwościami diagnostyki Spark.
- Konfiguracja jest stosowana podczas uruchamiania sesji Spark.
Aby ustawić środowisko jako domyślne w przestrzeni roboczej:
- Przejdź do ustawień obszaru roboczego w aplikacji Fabric.
- Znajdź ustawienia Spark w ustawieniach przestrzeni roboczej (Ustawienia przestrzeni roboczej -> Inżynieria danych/Nauka -> Ustawienia Spark).
- Wybierz kartę Środowisko i wybierz środowisko ze skonfigurowanymi diagnostycznymi właściwościami Spark, a następnie kliknij Zapisz.
Dostępne konfiguracje
Konfigurowanie | opis |
---|---|
spark.synapse.diagnostic.emitters |
Wymagane. Rozdzielane przecinkami nazwy docelowe emiterów diagnostycznych. |
spark.synapse.diagnostic.emitter.<destination>.type |
Wymagane. Wbudowany typ miejsca docelowego. Aby włączyć miejsce docelowe usługi Azure Event Hubs, wartość powinna mieć wartość AzureEventHub . |
spark.synapse.diagnostic.emitter.<destination>.categories |
Opcjonalny. Wybrane kategorie dzienników, rozdzielone przecinkami. Dostępne wartości obejmują DriverLog , , ExecutorLog EventLog , Metrics . Jeśli nie zostanie ustawiona, wartość domyślna to wszystkie kategorie. |
spark.synapse.diagnostic.emitter.<destination>.secret |
Opcjonalny. Ciąg połączenia instancji Azure Event Hubs. To pole powinno być zgodne z tym wzorcem Endpoint=sb://<FQDN>/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<PathName> |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Wymagane, jeśli .secret nie zostanie określony. Identyfikator URI Azure Key Vault, w którym jest przechowywana tajemnica (łańcuch połączenia). |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName |
Wymagane, jeśli .secret.keyVault jest określony. Nazwa sekretu w usłudze Azure Key Vault, gdzie jest przechowywany sekret (parametry połączenia). |
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match |
Opcjonalny. Nazwy zdarzeń Spark rozdzielane przecinkami, możesz określić, które zdarzenia mają być zbierane. Na przykład: SparkListenerApplicationStart,SparkListenerApplicationEnd . |
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match |
Opcjonalny. Można określić, które dzienniki zbierać, za pomocą nazw rejestratorów Log4j rozdzielonych przecinkami. Na przykład: org.apache.spark.SparkContext,org.example.Logger . |
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match |
Opcjonalny. Sufiksy nazw metryk platformy Spark rozdzielone przecinkami umożliwiają określenie metryk do zebrania. Na przykład: jvm.heap.used . |
spark.fabric.pools.skipStarterPools |
Wymagane. Ta właściwość platformy Spark jest używana do wymuszania sesji platformy Spark na żądanie. Należy ustawić wartość na true w przypadku używania puli domyślnej, aby biblioteki generowały dzienniki i metryki. |
Uwaga
Parametry połączenia wystąpienia usługi Azure EventHub powinny zawsze zawierać EntityPath
, czyli nazwę wystąpienia usługi Azure Event Hubs.
Przykład danych dziennika
Oto przykładowy rekord dziennika w formacie 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"
// ...
}
}
Obszary robocze w środowisku sieciowym z zarządzaną siecią wirtualną
Utwórz zarządzany prywatny punkt końcowy dla docelowej usługi Azure Event Hubs. Aby uzyskać szczegółowe instrukcje, zobacz Tworzenie i używanie zarządzanych prywatnych punktów końcowych w usłudze Microsoft Fabric — Microsoft Fabric.
Po zatwierdzeniu zarządzanego prywatnego punktu końcowego użytkownicy mogą rozpocząć emitowanie dzienników i metryk do docelowej usługi Azure Event Hubs.
Następne kroki
- Tworzenie definicji zadania platformy Apache Spark
- Tworzenie, konfigurowanie i używanie środowiska w usłudze Microsoft Fabric
- Tworzenie i używanie zarządzanych prywatnych punktów końcowych w usłudze Microsoft Fabric
- Opracowywanie, wykonywanie i zarządzanie notesami Microsoft Fabric
- Monitorowanie aplikacji platformy Spark