Поделиться через


Сбор журналов и метрик приложений Apache Spark с помощью Центров событий Azure (предварительная версия)

Расширение для диагностики в Apache Spark от Fabric — это библиотека, которая позволяет приложениям Apache Spark генерировать журналы, журналы событий и метрики для различных назначений, включая Azure Log Analytics, Azure Storage и Azure Event Hubs. В этом руководстве вы узнаете, как использовать расширение средства создания диагностики Apache Spark Для отправки журналов приложений Apache Spark, журналов событий и метрик в Центры событий Azure.

Передача журналов и метрик в Центры событий Azure

Шаг 1. Создайте экземпляр Центра событий Azure

Для сбора журналов диагностики и метрик можно использовать существующий экземпляр узлов событий Azure. Если у вас его нет, можно создать концентратор событий.

Шаг 2. Создание артефакта среды Fabric с помощью конфигурации Apache Spark

Вариант 1: Настройка с помощью строки подключения для Центров событий Azure

  1. Создание артефакта среды Fabric в Fabric

  2. Добавьте следующие свойства Spark с соответствующими значениями в артефакт среды или выберите "Добавить из .yml" на ленте, чтобы скачать образец yaml файла, содержащий следующие свойства.

    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> Заполните параметры в файле конфигурации. Для получения дополнительной информации см. конфигурации Центров событий Azure.

Вариант 2. Настройка с помощью Azure Key Vault

Примечание.

Убедитесь, что пользователи, отправившие приложения Apache Spark, получают разрешения на чтение секретов. Дополнительные сведения см. в статье Предоставление доступа к ключам, сертификатам и секретам Key Vault с помощью управления доступом на основе ролей Azure.

Чтобы настроить Azure Key Vault для хранения ключа рабочей области:

  1. На портале Azure создайте хранилище ключей и перейдите к нему.

  2. На странице параметров хранилища ключей выберите "Секреты", а затем "Создать и импортировать".

  3. На экране Создание секрета выберите следующие значения:

    • Имя — укажите имя секрета.
    • Значение — введите <connection-string> для секрета.
    • Оставьте другие значения по умолчанию. Затем выберите Создать.
  4. Создайте артефакт среды Fabric в Fabric.

  5. Добавьте следующие свойства Spark. Или выберите "Добавить из .yml" на ленте, чтобы скачать пример yaml-файла, который включает следующие свойства 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.
    

    Заполните следующие параметры в файле конфигурации: <AZURE_KEY_VAULT_URI>, <AZURE_KEY_VAULT_SECRET_KEY_NAME>. Дополнительные сведения об этих параметрах см. в разделе Конфигурации центров событий Azure.

  6. Сохраните и опубликуйте изменения.

Шаг 3. Присоединение артефакта среды к ноутбукам или определениям заданий Spark, или установка его в качестве параметра по умолчанию для рабочей области.

Примечание.

  • Только администраторы рабочих областей могут назначать среду как среду по умолчанию для рабочей области.
  • После установки она становится средой по умолчанию для всех записных книжек и определений заданий Spark в рабочей области. Дополнительные сведения см. в разделе "Параметры рабочей области Fabric".

Чтобы подключить среду к определениям заданий Spark и записных книжек, выполните следующие действия.

  1. Перейдите к конкретной записной книжке или определению задания Spark в Fabric.
  2. Выберите меню "Среда" на вкладке "Главная" и выберите среду с настроенными свойствами Диагностика Spark.
  3. Конфигурация применяется при запуске сеанса Spark.

Чтобы задать среду в качестве рабочей области по умолчанию, выполните следующие действия.

  1. Перейдите к параметрам рабочей области в Fabric.
  2. Найдите параметры Spark в параметрахрабочей области (параметр рабочей области —> Инжиниринг данных/Science —> параметры Spark).
  3. Перейдите на вкладку "Среда " и выберите среду с настроенными свойствами Spark диагностики и нажмите кнопку "Сохранить".

Доступные конфигурации

Настройка Описание
spark.synapse.diagnostic.emitters Обязательное. Имена назначений диагностических излучателей, разделённые запятой.
spark.synapse.diagnostic.emitter.<destination>.type Обязательное. Встроенный тип назначения. Чтобы включить назначение Центров событий Azure, значение должно быть AzureEventHub.
spark.synapse.diagnostic.emitter.<destination>.categories Необязательно. Выбранные категории журнала, разделенные запятой. Доступные значения: DriverLog, ExecutorLog, EventLog, Metrics. Если значение не указано, по умолчанию задаются все категории.
spark.synapse.diagnostic.emitter.<destination>.secret Необязательно. Строка подключения для экземпляра Azure Event Hubs. Это поле должно соответствовать этому шаблону Endpoint=sb://<FQDN>/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<PathName>
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault Обязательно, если .secret не указан. хранилище ключей Azure URI, в котором хранится секрет (строка подключения).
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName Обязателен, если указан ключ .secret.keyVault. Имя секрета в хранилище ключей Azure, где сохранена строка подключения.
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 при использовании пула по умолчанию.

Примечание.

Строка подключения экземпляра Azure EventHub всегда должна содержать EntityPath, которая является именем экземпляра Центров событий Azure.

Пример журнала данных

Ниже приведен пример записи журнала в формате 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"
    // ...
  }
}

Как только диагностика будет передана в Концентратор событий Azure, вы можете использовать этот Концентратор событий в качестве источника в потоке событий Fabric для обработки или маршрутизации данных.

Рабочие области Fabric с управляемой виртуальной сетью

Создайте управляемую частную конечную точку для целевых центров событий Azure. Подробные инструкции см. в статье "Создание и использование управляемых частных конечных точек" в Microsoft Fabric — Microsoft Fabric.

После утверждения управляемой приватной конечной точки пользователи могут начать отправлять журналы и метрики в целевой Центр событий Azure.

Следующие шаги