Zbieranie dzienników i metryk aplikacji platformy Apache Spark przy użyciu konta usługi Azure Storage (wersja zapoznawcza)
Rozszerzenie emitera diagnostycznego Apache Spark to biblioteka umożliwiająca aplikacjom Apache Spark przesyłanie dzienników, dzienników zdarzeń i metryk do wielu miejsc docelowych, w tym Azure Log Analytics, Azure Storage i Azure Event Hubs.
Z tego samouczka dowiesz się, jak korzystać z rozszerzenia diagnostycznego emisji Fabric Apache Spark, aby wysyłać dzienniki aplikacji, dzienniki zdarzeń i metryki platformy Apache Spark do konta usługi Azure Storage.
Zbieranie dzienników i metryk do konta magazynu
Krok 1. Tworzenie konta magazynu
Aby zebrać dzienniki diagnostyczne i metryki, możesz użyć istniejącego konta usługi Azure Storage. Jeśli go nie masz, możesz utworzyć konto magazynu Azure Blob Storage lub utworzyć konto magazynu do użycia z usługą Azure Data Lake Storage Gen2.
Krok 2. Utwórz artefakt środowiska Fabric przy użyciu konfiguracji Apache Spark
Opcja 1. Konfigurowanie przy użyciu identyfikatora URI usługi Azure Storage i klucza dostępu
Tworzenie artefaktu środowiska sieci szkieletowej w sieci szkieletowej
Dodaj następujące właściwości Spark z odpowiednimi wartościami do artefaktu środowiska lub wybierz opcję Dodaj z pliku .yml na pasku wstążki, aby pobrać przykładowy plik yaml, który już zawiera następujące właściwości.
spark.synapse.diagnostic.emitters: MyStorageBlob spark.synapse.diagnostic.emitter.MyStorageBlob.type: "AzureStorage" spark.synapse.diagnostic.emitter.MyStorageBlob.categories: "DriverLog,ExecutorLog,EventLog,Metrics" spark.synapse.diagnostic.emitter.MyStorageBlob.uri: "https://<my-blob-storage>.blob.core.windows.net/<container-name>/<folder-name>" spark.synapse.diagnostic.emitter.MyStorageBlob.auth: "AccessKey" spark.synapse.diagnostic.emitter.MyStorageBlob.secret: <storage-access-key> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Wypełnij następujące parametry w pliku konfiguracji:
<my-blob-storage>
,<container-name>
,<folder-name>
,<storage-access-key>
. Aby uzyskać więcej informacji na temat tych parametrów, zobacz Konfiguracje usługi Azure Storage.
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 tajnych danych. 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 niego w portalu Azure.
Na stronie ustawień magazynu kluczy wybierz pozycję Sekrety, a następnie Generuj/Importuj.
Na ekranie Tworzenie wpisu tajnego wybierz następujące wartości:
- Nazwa: Wprowadź nazwę tajemnicy.
-
Wartość: wprowadź
<storage-access-key>
dla tajnego. - Dla pozostałych opcji zostaw wartości domyślne. Następnie wybierz Utwórz.
Utwórz artefakt środowiska w Fabric.
Dodaj następujące właściwości platformy Spark. Możesz też wybrać pozycję Dodaj z .yml na wstążce, aby przekazać przykładowy plik yaml zawierający następujące właściwości Spark.
spark.synapse.diagnostic.emitters: <MyStorageBlob> spark.synapse.diagnostic.emitter.MyStorageBlob.type: "AzureStorage" spark.synapse.diagnostic.emitter.MyStorageBlob.categories: "DriverLog,ExecutorLog,EventLog,Metrics" spark.synapse.diagnostic.emitter.MyStorageBlob.uri: "https://<my-blob-storage>.blob.core.windows.net/<container-name>/<folder-name>" spark.synapse.diagnostic.emitter.MyStorageBlob.auth: "AccessKey" spark.synapse.diagnostic.emitter.MyStorageBlob.secret.keyVault: <AZURE_KEY_VAULT_URI> spark.synapse.diagnostic.emitter.MyStorageBlob.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:
<my-blob-storage>
, ,<container-name>
<folder-name>
,<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 Storage.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 dołączyć środowisko do notesów lub definicji zadań Spark:
- Przejdź do określonego notesu lub definicji zadania Spark na platformie 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 dla przestrzeni roboczej:
- Przejdź do ustawień przestrzeni roboczej w Fabric.
- Znajdź ustawienia Spark w ustawieniach Twojego środowiska pracy (Ustawienia środowiska pracy -> Inżynieria/Dane naukowe -> ustawienia Spark).
- Wybierz zakładkę Środowisko, a następnie wybierz środowisko, w którym skonfigurowano właściwości diagnostyczne dla platformy Spark, i kliknij Zapisz.
Krok 4. Wyświetlanie plików dzienników na koncie usługi Azure Storage
Po przesłaniu zadania do skonfigurowanej sesji Spark możesz wyświetlić dzienniki i pliki metryk na docelowym koncie magazynowym. Dzienniki są przechowywane w odpowiednich ścieżkach dla różnych aplikacji zidentyfikowanych przez <workspaceId>.<fabricLivyId>
. Wszystkie pliki dziennika są w formacie JSON Lines (znanym również jako newline-delimited JSON lub ndjson), który jest wygodny w przetwarzaniu danych.
Dostępne konfiguracje
Konfigurowanie | opis |
---|---|
spark.synapse.diagnostic.emitters |
Wymagane. Rozdzielane przecinkami nazwy docelowe emiterów diagnostycznych. Na przykład MyDest1,MyDest2 |
spark.synapse.diagnostic.emitter.<destination>.type |
Wymagane. Wbudowany typ celu. Aby włączyć miejsce docelowe usługi Azure Storage, AzureStorage należy uwzględnić je w tym polu. |
spark.synapse.diagnostic.emitter.<destination>.categories |
Opcjonalny. Kategorie dzienników wybrane i 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>.auth |
Wymagane.
AccessKey do korzystania z autoryzacji przy użyciu klucza dostępu do konta magazynu.
SAS w przypadku autoryzacji współdzielonych sygnatur dostępu. |
spark.synapse.diagnostic.emitter.<destination>.uri |
Wymagane. Identyfikator URI docelowego folderu kontenera blob. Powinien być zgodny ze wzorcem https://<my-blob-storage>.blob.core.windows.net/<container-name>/<folder-name> . |
spark.synapse.diagnostic.emitter.<destination>.secret |
Opcjonalny. Zawartość tajnego klucza (AccessKey lub SAS). |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Wymagane, jeśli .secret nie zostanie określony.
Azure Key Vault URI, w którym jest przechowywana tajemnica (AccessKey lub SAS). |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName |
Wymagane, jeśli .secret.keyVault jest określony. Nazwa tajemnicy w usłudze Azure Key Vault, w której jest przechowywany klucz tajny (AccessKey lub SAS). |
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match |
Opcjonalny. Nazwy zdarzeń platformy Spark, oddzielone przecinkami, określają, 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 zebrać, podając nazwy rejestratorów Log4j rozdzielone przecinkami. Na przykład: org.apache.spark.SparkContext,org.example.Logger . |
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match |
Opcjonalny. Sufiksy nazw metryk systemu Spark, rozdzielone przecinkami, pozwalają określić, które metryki mają zostać zebrane. 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 podczas używania puli domyślnej, aby spowodować, że biblioteki będą generować dzienniki i metryki. |
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 fabric z zarządzaną siecią wirtualną
Utwórz zarządzany prywatny punkt końcowy dla docelowej usługi Azure Blob Storage. 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 Blob Storage.
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
- Tworzenie, wykonywanie i zarządzanie notebookami usługi Microsoft Fabric
- Monitorowanie aplikacji platformy Spark