События
Присоединение к вызову ИИ Навыков
8 апр., 15 - 28 мая, 07
Отточите свои навыки ИИ и введите подметки, чтобы выиграть бесплатный экзамен сертификации
Зарегистрируйтесь!Этот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Расширение Apache Spark Fabric для диагностического эмиттера — это библиотека, которая позволяет приложениям Apache Spark передавать журналы, журналы событий и метрики в различные пункты назначения, включая аналитику журналов Azure, хранилище Azure и центры событий Azure.
В этом руководстве вы узнаете, как настроить и отправлять журналы и метрики Spark в Log Analytics в среде Fabric. После настройки вы сможете собирать и анализировать метрики и журналы приложений Apache Spark в рабочей области Log analytics.
Выполните следующие действия, чтобы настроить необходимые сведения в Fabric.
Чтобы создать эту рабочую область, ознакомьтесь с одним из следующих ресурсов:
Чтобы настроить Spark, создайте артефакт среды Fabric и выберите один из следующих вариантов:
Создание артефакта среды Fabric в Fabric
Добавьте следующие свойства Spark с соответствующими значениями в артефакт среды или выберите Добавить из .yml в меню, чтобы скачать образец YAML-файла, который уже содержит необходимые свойства.
<EMITTER_NAME>
: имя эмитера.<LOG_ANALYTICS_WORKSPACE_ID>
— идентификатор рабочей области Log Analytics.<LOG_ANALYTICS_WORKSPACE_KEY>
— ключ Log Analytics. Чтобы найти это, в портале Azure перейдите в рабочую область Azure Log Analytics, затем к агентам и первичному ключу.spark.synapse.diagnostic.emitters: <EMITTER_NAME>
spark.synapse.diagnostic.emitter.<EMITTER_NAME>.type: "AzureLogAnalytics"
spark.synapse.diagnostic.emitter.<EMITTER_NAME>.categories: "Log,EventLog,Metrics"
spark.synapse.diagnostic.emitter.<EMITTER_NAME>.workspaceId: <LOG_ANALYTICS_WORKSPACE_ID>
spark.synapse.diagnostic.emitter.<EMITTER_NAME>.secret: <LOG_ANALYTICS_WORKSPACE_KEY>
spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Кроме того, чтобы применить ту же конфигурацию, что и Azure Synapse, используйте следующие свойства или выберите " Добавить из .yml" на ленте, чтобы скачать образец yaml-файла.
spark.synapse.logAnalytics.enabled: "true"
spark.synapse.logAnalytics.workspaceId: <LOG_ANALYTICS_WORKSPACE_ID>
spark.synapse.logAnalytics.secret: <LOG_ANALYTICS_WORKSPACE_KEY>
spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Сохраните и опубликуйте изменения.
Примечание
Вам нужно предоставить разрешение на чтение секрета пользователям, которые будут отправлять приложения Apache Spark. Дополнительные сведения см. в статье Предоставление доступа к ключам, сертификатам и секретам Key Vault с помощью управления доступом на основе ролей Azure.
Чтобы настроить хранение ключа рабочей области в Azure Key Vault, выполните следующие действия:
Перейдите в Хранилище ключей в портал Azure.
На странице параметров хранилища ключей выберите "Секреты", а затем "Создать и импортировать".
На экране "Создание секрета" введите следующие значения:
SparkLogAnalyticsSecret
.<LOG_ANALYTICS_WORKSPACE_KEY>
для секрета.Создание артефакта среды Fabric в Fabric
Добавьте следующие свойства Spark и их соответствующие значения в артефакт среды или выберите Добавить из .yml на ленте в артефакте среды, чтобы скачать образец yaml-файла, который включает перечисленные свойства Spark.
<EMITTER_NAME>
: имя эмитера.<LOG_ANALYTICS_WORKSPACE_ID>
— идентификатор рабочей области Log Analytics.<AZURE_KEY_VAULT_URI>
: URI хранилища ключей, настроенный вами.<AZURE_KEY_VAULT_SECRET_KEY_NAME>
(необязательно) — секретное имя в хранилище ключей для ключа рабочей области. Значение по умолчанию — SparkLogAnalyticsSecret
.// Spark properties for EMITTER_NAME
spark.synapse.diagnostic.emitters <EMITTER_NAME>
spark.synapse.diagnostic.emitter.<EMITTER_NAME>.type: "AzureLogAnalytics"
spark.synapse.diagnostic.emitter.<EMITTER_NAME>.categories: "Log,EventLog,Metrics"
spark.synapse.diagnostic.emitter.<EMITTER_NAME>.workspaceId: <LOG_ANALYTICS_WORKSPACE_ID>
spark.synapse.diagnostic.emitter.<EMITTER_NAME>.secret.keyVault: <AZURE_KEY_VAULT_URI>
spark.synapse.diagnostic.emitter.<EMITTER_NAME>.secret.keyVault.secretName: <AZURE_KEY_VAULT_SECRET_KEY_NAME>
spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Кроме того, чтобы применить ту же конфигурацию, что и Azure Synapse, используйте следующие свойства или выберите "Добавить из .yml" на ленте, чтобы скачать образец yaml-файла.
spark.synapse.logAnalytics.enabled: "true"
spark.synapse.logAnalytics.workspaceId: <LOG_ANALYTICS_WORKSPACE_ID>
spark.synapse.logAnalytics.keyVault.name: <AZURE_KEY_VAULT_URI>
spark.synapse.logAnalytics.keyVault.key.secret: <AZURE_KEY_VAULT_SECRET_KEY_NAME>
spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Примечание
Вы также можете сохранить идентификатор рабочей области в Key Vault. Задайте имя секрета SparkLogAnalyticsWorkspaceId
или используйте конфигурацию spark.synapse.logAnalytics.keyVault.key.workspaceId
, чтобы указать имя секрета идентификатора рабочей области.
Сохраните и опубликуйте изменения.
Примечание
Только администраторы рабочих областей могут назначать среду как среду по умолчанию для рабочей области.
После установки она становится средой по умолчанию для всех записных книжек и определений заданий Spark в рабочей области. Дополнительные сведения см. в разделе "Параметры рабочей области Fabric".
Чтобы подключить среду к записным книжкам или определениям заданий Spark, выполните следующие действия.
Чтобы задать среду в качестве рабочей области по умолчанию, выполните следующие действия.
Чтобы отправить приложение Apache Spark, выполните приведенные действия.
Отправьте приложение Apache Spark с связанной средой, настроенной на предыдущем шаге. Можно использовать любой из следующих способов:
Когда приложение Apache Spark запустится, перейдите в указанную рабочую область Log Analytics, а затем просмотрите метрики и журналы приложения.
Для записи настраиваемых журналов можно использовать библиотеку Apache Log4j. Ниже приведены примеры для Scala и PySpark:
Пример Scala:
%%spark
val logger = org.apache.log4j.LogManager.getLogger("com.contoso.LoggerExample")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
//log exception
try {
1/0
} catch {
case e:Exception =>logger.warn("Exception", e)
}
// run job for task level metrics
val data = sc.parallelize(Seq(1,2,3,4)).toDF().count()
Пример PySpark:
%%pyspark
logger = sc._jvm.org.apache.log4j.LogManager.getLogger("com.contoso.PythonLoggerExample")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
Запрос событий Apache Spark:
SparkListenerEvent_CL
| where fabricWorkspaceId_g == "{FabricWorkspaceId}" and artifactId_g == "{ArtifactId}" and fabricLivyId_g == "{LivyId}"
| order by TimeGenerated desc
| limit 100
Чтобы запросить журналы драйвера приложения Spark и исполнителя, выполните приведенные ниже действия.
SparkLoggingEvent_CL
| where fabricWorkspaceId_g == "{FabricWorkspaceId}" and artifactId_g == "{ArtifactId}" and fabricLivyId_g == "{LivyId}"
| order by TimeGenerated desc
| limit 100
Запрос метрик Apache Spark:
SparkMetrics_CL
| where fabricWorkspaceId_g == "{FabricWorkspaceId}" and artifactId_g == "{ArtifactId}" and fabricLivyId_g == "{LivyId}"
| where name_s endswith "jvm.total.used"
| summarize max(value_d) by bin(TimeGenerated, 30s), executorId_s
| order by TimeGenerated asc
Пользователи могут отправлять запросы для оценки метрик и журналов с заданной периодичностью и запуска оповещений на основе результатов. Дополнительные сведения см. в разделе Создание и просмотр оповещений журналов, а также управление ими с помощью Azure Monitor.
Сейчас Azure Log Analytics нельзя выбрать в качестве назначения для журналов Spark и выбросов метрик в управляемой виртуальной сети, так как управляемая частная конечная точка не поддерживает Log Analytics в качестве источника данных.
Использование префикса spark.synaspe.diagnostic.emitter.*
для настройки сведений Log Analytics.
Конфигурация | Описание |
---|---|
spark.synapse.diagnostic.emitters |
Обязательное. Названия пунктов назначения диагностических излучателей, разделенные запятой. Например, MyDest1 ,MyDest2 . |
spark.synapse.diagnostic.emitter.<destination>.type |
Обязательное. Встроенный тип назначения. Чтобы активировать назначение Azure Log Analytics, необходимо включить AzureLogAnalytics в это поле. |
spark.synapse.diagnostic.emitter.<destination>.categories |
Необязательно. Выбранные категории журнала, разделенные запятой. Доступные значения включают Log , EventLog , Metrics . Если значение не указано, по умолчанию задаются все категории. |
spark.synapse.diagnostic.emitter.<destination>.workspaceId |
Обязательное. Идентификатор целевой рабочей области Log Analytics. |
spark.synapse.diagnostic.emitter.<destination>.secret |
Необязательно. Секретное содержимое рабочей области. |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Требуется, если .secre t не указан.
URI хранилища ключей Azure, в котором хранится секрет. |
park.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName |
Обязателен, если указан ключ .secret.keyVault . Имя секрета хранилища ключей Azure, в котором хранится секрет рабочей области LA. |
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 |
Необязательно. Суффиксы имен метрик Apache Spark, разделенные запятыми; можно указать, какие метрики нужно собирать. Например: jvm.heap.used . |
spark.fabric.pools.skipStarterPools |
Обязательное. Это свойство Spark используется для принудительного выполнения сеанса Spark по запросу. Необходимо задать значение true при использовании пула по умолчанию, чтобы активировать библиотеки для выдачи журналов и метрик. |
Использование префикса spark.synapse.logAnalytics.*
для настройки сведений Log Analytics.
Имя конфигурации | Значение по умолчанию | Описание |
---|---|---|
spark.synapse.logAnalytics.enabled |
неправда | Чтобы включить приемник Log Analytics для приложений Spark, выберите значение true. В противном случае — false. |
spark.synapse.logAnalytics.workspaceId |
- | Идентификатор целевой рабочей области Log Analytics. |
spark.synapse.logAnalytics.secret |
- | Секрет целевой рабочей области Log Analytics. |
spark.synapse.logAnalytics.keyVault.name |
- | URI ключевого хранилища для идентификатора и ключа Log Analytics. |
spark.synapse.logAnalytics.keyVault.key.workspaceId |
SparkLogAnalyticsWorkspaceId | Имя секрета Key Vault для идентификатора рабочей области в Log Analytics. |
spark.synapse.logAnalytics.keyVault.key.secret |
SparkLogAnalyticsSecret | Имя секрета в Key Vault для рабочей области Log Analytics. |
spark.synapse.logAnalytics.uriSuffix |
ods.opinsights.azure.com | Суффикс URI для целевой рабочей области Log Analytics. Если рабочая область размещается не в глобальной службе Azure, измените этот суффикс URI в соответствии с используемым облаком. |
spark.synapse.logAnalytics.filter.eventName.match |
- | Необязательно. Имена событий Apache Spark, разделенные запятыми; можно указать, какие события нужно собирать. Например: SparkListenerJobStart,SparkListenerJobEnd . |
spark.synapse.logAnalytics.filter.loggerName.match |
- | Необязательно. Имена средств ведения журналов log4j, разделенные запятыми; можно указать, какие журналы нужно собирать. Например: org.apache.spark.SparkContext,org.example.Logger . |
spark.synapse.logAnalytics.filter.metricName.match |
- | Необязательно. Суффиксы имен метрик Apache Spark, разделенные запятыми; можно указать, какие метрики нужно собирать. Например: jvm.heap.used . |
spark.fabric.pools.skipStarterPools |
верно | Обязательное. Это свойство Spark используется для принудительного выполнения сеанса Spark по запросу. |
Примечание
spark.synapse.logAnalytics.uriSuffix
должен be ods.opinsights.azure.cn
.spark.synapse.logAnalytics.uriSuffix
должен иметь значение ods.opinsights.azure.us
.spark.synapse.logAnalytics.keyVault.name
параметр должен быть полным доменным именем (FQDN) хранилища ключей. Например, AZURE_KEY_VAULT_NAME.vault.usgovcloudapi.net
для AzureUSGovernment.Почему служба Log Analytics не получает журналы или создает таблицу Customer?
Если рабочая область Log Analytics не получает журналы или таблица "Клиент" не создается, выполните следующие действия.
проверить конфигурацию Log Analytics. Убедитесь, что сведения о рабочей области Log Analytics настроены правильно в приложении Spark. Чтобы проверить конфигурацию, перейдите к пользовательскому интерфейсу Spark или серверу журнала Spark, перейдите на вкладку "Среда" и просмотрите параметры в разделе "Свойства Spark".
проверить разрешения:
Проверка ограничений данных: Fabric отправляет данные журнала в Azure Monitor через HTTP API для сбора данных. Данные, опубликованные в API сбора данных Azure Monitor, подвергаются определенным ограничениям:
Как подтвердить правильное настройку разрешений Log Analytics?
Чтобы убедиться, что Log Analytics может получать журналы, проверьте следующие разрешения:
Права на запись Log Analytics:
Разрешения на чтение «KeyVault» (если применимо):
Почему запуск сеанса Spark становится медленным после настройки этих свойств Spark?
Это происходит потому, что вы настроили spark.fabric.pool.skipStarterPool: true, который пропускает начальный пул (тип динамического пула) и вместо этого использует пул по запросу для запуска сеанса Spark. Запуск сеанса Spark в пуле по запросу обычно занимает около 3 минут для создания и инициализации.
Причина в том, что библиотека диагностики требует, чтобы определенные конфигурации были применены при запуске сеанса Spark, что возможно только в пулах по запросу, так как они динамически создаются в процессе запуска. В отличие от этого, сеансы Live Pool предварительно запущены и не могут применять эти конфигурации во время инициализации. Дополнительные сведения о вычислениях Fabric Spark см. в вычисления Apache Spark для разработки данных, обработки и анализа данных.
События
Присоединение к вызову ИИ Навыков
8 апр., 15 - 28 мая, 07
Отточите свои навыки ИИ и введите подметки, чтобы выиграть бесплатный экзамен сертификации
Зарегистрируйтесь!