Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Расширение диагностического эмиттера Fabric Apache Spark — это библиотека, которая позволяет приложениям Apache Spark выдавать журналы, журналы событий и метрики на несколько направлений, включая Azure Log Analytics, Azure Storage и Центры событий Azure.
В этом руководстве вы узнаете, как использовать расширение диагностического эмиттера Fabric Apache Spark для отправки журналов приложений Apache Spark, журналов событий и метрик в учетную запись хранения Azure.
Сбор журналов и метрик в учетную запись хранения
Шаг 1. Создание учетной записи хранения
Для сбора журналов диагностики и метрик можно использовать существующую учетную запись службы хранилища Azure. Если у вас его нет, можно создать учетную запись хранения BLOB-объектов Azure или создать учетную запись хранения для использования с Azure Data Lake Storage 2-го поколения.
Шаг 2. Создание артефакта среды Fabric с помощью конфигурации Apache Spark
Вариант 1: Настройка с помощью URI хранилища Azure и ключа доступа
Создание артефакта среды Fabric в Fabric
Добавьте следующие свойства Spark с соответствующими значениями в артефакт среды или выберите "Добавить из .yml" на ленте, чтобы скачать пример yaml-файла, который уже содержит указанные свойства.
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.
В файле конфигурации задайте следующие параметры:
<my-blob-storage>
,<container-name>
,<folder-name>
и<storage-access-key>
. Для получения дополнительной информации об этих параметрах см. в конфигурациях хранения Azure.
Вариант 2. Настройка с помощью Azure Key Vault
Примечание.
Убедитесь, что пользователи, отправившие приложения Apache Spark, получают разрешения на чтение секретов. Дополнительные сведения см. в статье Предоставление доступа к ключам, сертификатам и секретам Key Vault с помощью управления доступом на основе ролей Azure.
Чтобы настроить Azure Key Vault для хранения ключа рабочей области:
На портале Azure создайте хранилище ключей и перейдите к нему.
На странице параметров хранилища ключей выберите "Секреты", а затем "Создать и импортировать".
На экране Создание секрета выберите следующие значения:
- Имя — укажите имя секрета.
-
Значение — введите
<storage-access-key>
для секрета. - Оставьте другие значения по умолчанию. Затем выберите Создать.
Создайте артефакт среды Fabric в Fabric.
Добавьте следующие параметры Spark. Или выберите Добавить из .yml-файла на ленте, чтобы загрузить yaml-файл примера, который включает следующие свойства 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.
Введите следующие параметры в файле конфигурации:
<my-blob-storage>
,<container-name>
,<folder-name>
,<AZURE_KEY_VAULT_URI>
,<AZURE_KEY_VAULT_SECRET_KEY_NAME>
. Для получения дополнительной информации об этих параметрах см. конфигурации хранилища Azure.Сохраните и опубликуйте изменения.
Шаг 3. Присоедините артефакт среды к записным книжкам или спецификациям заданий Spark, или установите его в качестве стандарта для рабочей области.
Примечание.
Только администраторы рабочих областей могут назначать среду как среду по умолчанию для рабочей области.
После установки она становится средой по умолчанию для всех записных книжек и определений заданий Spark в рабочей области. Дополнительные сведения см. в разделе "Параметры рабочей области Fabric".
Чтобы подключить среду к определениям заданий Spark и записных книжек, выполните следующие действия.
- Перейдите к определенной записной книжке или определению задания Spark в Fabric.
- Выберите меню "Среда" на вкладке "Главная" и выберите среду с настроенными свойствами Диагностика Spark.
- Конфигурация применяется при запуске сеанса Spark.
Чтобы задать среду в качестве рабочей области по умолчанию, выполните следующие действия.
- Перейдите к параметрам рабочей области в Fabric.
- Найдите параметры Spark в параметрахрабочей области (параметр рабочей области —> Инжиниринг данных/Science —> параметры Spark).
- Выберите вкладку "Среда", выберите среду с настроенными свойствами диагностики Spark, и нажмите кнопку "Сохранить".
Шаг 4. Просмотр файлов журналов в учетной записи хранения Azure
После отправки задания в настроенный сеанс Spark можно просмотреть файлы журналов и метрик в целевой учетной записи хранения. Журналы хранятся в соответствующих путях, которые зависят от разных приложений, указанных через <workspaceId>.<fabricLivyId>
. Все файлы журнала находятся в формате строк JSON (также известных как json с разделителями newline или ndjson), что удобно для обработки данных.
Доступные конфигурации
Настройка | Описание |
---|---|
spark.synapse.diagnostic.emitters |
Обязательное. Имена мест назначения диагностических передатчиков, разделенные запятой. Например: MyDest1,MyDest2 |
spark.synapse.diagnostic.emitter.<destination>.type |
Обязательное. Встроенный тип назначения. Чтобы включить назначение хранилища Azure, необходимо включить AzureStorage в это поле. |
spark.synapse.diagnostic.emitter.<destination>.categories |
Необязательно. Выбранные категории журнала, разделенные запятой. Доступные значения: DriverLog , ExecutorLog , EventLog , Metrics . Если значение не указано, по умолчанию задаются все категории. |
spark.synapse.diagnostic.emitter.<destination>.auth |
Обязательное.
AccessKey для использования авторизации на основе ключа доступа учетной записи хранения.
SAS для авторизации с использованием общих ключей доступа. |
spark.synapse.diagnostic.emitter.<destination>.uri |
Обязательное. URI папки целевого контейнера BLOB-объектов. Ожидается соответствие шаблону https://<my-blob-storage>.blob.core.windows.net/<container-name>/<folder-name> . |
spark.synapse.diagnostic.emitter.<destination>.secret |
Необязательно. Секретное содержимое (AccessKey или SAS). |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Обязательно, если .secret не указан.
хранилище ключей Azure URI, в котором хранится секрет (AccessKey или SAS). |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName |
Обязателен, если указан ключ .secret.keyVault . Имя секрета хранилища ключей Azure, где хранится секрет (AccessKey или SAS). |
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match |
Необязательно. Имена событий Apache Spark, разделенные запятыми; можно указать, какие события нужно собирать. Например: SparkListenerApplicationStart,SparkListenerApplicationEnd |
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match |
Необязательно. Можно указать имена логгеров Log4j, разделенные запятыми, чтобы определить, какие журналы собирать. Например: org.apache.spark.SparkContext,org.example.Logger |
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match |
Необязательно. Суффиксы имен метрик spark, разделенные запятыми, позволяют указать, какие метрики собирать. Например: jvm.heap.used |
spark.fabric.pools.skipStarterPools |
Обязательное. Это свойство Spark используется для принудительного выполнения сеанса Spark по запросу. Необходимо задать значение true при использовании пула по умолчанию, чтобы активировать библиотеки для выдачи журналов и метрик. |
Пример журнала данных
Ниже приведен пример записи журнала в формате 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"
// ...
}
}
Рабочие области Fabric с управляемой виртуальной сетью
Создайте управляемую частную конечную точку для целевого хранилища Blob-объектов Azure. Подробные инструкции см. в статье "Создание и использование управляемых частных конечных точек" в Microsoft Fabric — Microsoft Fabric.
После утверждения управляемой частной конечной точки пользователи могут начать отправлять журналы и метрики в целевое хранилище blob-объектов Azure.