Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A extensão do emissor de diagnósticos do Fabric Apache Spark é uma biblioteca que permite que as aplicações Apache Spark emitam registos, registos de eventos e métricas para vários destinos, incluindo o Azure Log Analytics, o Azure Storage e o Azure Event Hubs. Neste tutorial, você aprenderá a usar a extensão de emissor de diagnóstico do Fabric Apache Spark para enviar logs de aplicativos, logs de eventos e métricas do Apache Spark para seus Hubs de Eventos do Azure.
Recolher logs e métricas para Hubs de Eventos do Azure
Etapa 1: Criar uma instância dos Hubs de Eventos do Azure
Para coletar logs de diagnóstico e métricas, você pode usar uma instância existente dos Hubs de Eventos do Azure. Se você não tiver um, poderá criar um hub de eventos.
Etapa 2: Criar um artefato de ambiente de malha com a configuração do Apache Spark
Opção 1: Configurar com a Cadeia de Conexão dos Hubs de Eventos do Azure
Criar um artefato de ambiente Fabric no Fabric
Adicione as seguintes propriedades do Spark com os valores apropriados ao artefacto do ambiente, ou selecione Adicionar de .yml na faixa de opções para descarregar o ficheiro yaml de exemplo que já contém as seguintes propriedades.
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.
Preencha os
<connection-string>
parâmetros no arquivo de configuração. Para obter mais informações, consulte Configurações dos Hubs de Eventos do Azure.
Opção 2: Configurar com o Azure Key Vault
Nota
Certifique-se de que os usuários que enviam aplicativos Apache Spark recebam permissões de segredo de leitura. Para obter mais informações, consulte Fornecer acesso a chaves, certificados e segredos do Key Vault com um controle de acesso baseado em funções do Azure.
Para configurar o Cofre da Chave do Azure para armazenar a chave do espaço de trabalho:
Crie e vá para o seu cofre de chaves no portal do Azure.
Na página de configurações do cofre de chaves, selecione Segredos e, em seguida , Gerar/Importar.
No ecrã Criar um segredo, selecione os seguintes valores:
- Nome: introduza o nome para o segredo.
-
Valor: Insira o
<connection-string>
para o segredo. - Deixe as outras opções com os valores predefinidos. Depois, selecione Criar.
Crie um artefacto de ambiente no Fabric.
Adicione as seguintes propriedades do Spark. Ou selecione Adicionar de .yml na barra de ferramentas para baixar o exemplo de arquivo yaml, que inclui as seguintes propriedades do 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.
Preencha os seguintes parâmetros no arquivo de configuração:
<AZURE_KEY_VAULT_URI>
,<AZURE_KEY_VAULT_SECRET_KEY_NAME>
. Para obter mais detalhes sobre esses parâmetros, consulte Configurações dos Hubs de Eventos do Azure.Salve e publique as alterações.
Etapa 3: Anexar o artefacto de ambiente aos notebooks ou às definições de tarefas do Spark, ou defini-lo como o padrão do espaço de trabalho
Nota
- Somente os administradores de espaço de trabalho podem designar um ambiente como padrão para um espaço de trabalho.
- Uma vez definido, ele se torna o ambiente padrão para todos os blocos de anotações e definições de trabalho do Spark no espaço de trabalho. Para obter mais informações, consulte Configurações do espaço de trabalho de malha.
Para anexar o ambiente às definições de trabalho do Notebooks ou do Spark:
- Navegue até ao notebook específico ou à definição de tarefa do Spark na plataforma Fabric.
- Selecione o menu Ambiente na guia Página Inicial e selecione o ambiente com as propriedades do Spark de diagnóstico configuradas.
- A configuração é aplicada quando você inicia uma sessão do Spark.
Para definir o ambiente como o espaço de trabalho padrão:
- Navegue até Configurações do espaço de trabalho no Fabric.
- Encontre as configurações do Spark nas configurações do espaço de trabalho (configuração do espaço de trabalho -> Engenharia de dados/Ciência -> configurações do Spark).
- Selecione a guia Ambiente e escolha o ambiente com propriedades de faísca de diagnóstico configuradas e selecione Salvar.
Configurações disponíveis
Configuração | Descrição |
---|---|
spark.synapse.diagnostic.emitters |
Obrigatório. Os nomes de destino separados por vírgulas dos elementos emissores de diagnóstico. |
spark.synapse.diagnostic.emitter.<destination>.type |
Obrigatório. Tipo de destino incorporado. Para habilitar o destino dos Hubs de Eventos do Azure, o valor deve ser AzureEventHub . |
spark.synapse.diagnostic.emitter.<destination>.categories |
Opcional. As categorias de log selecionadas separadas por vírgula. Os valores disponíveis incluem DriverLog , ExecutorLog , EventLog , Metrics . Se não estiver definido, o valor padrão será todas as categorias. |
spark.synapse.diagnostic.emitter.<destination>.secret |
Opcional. A cadeia de conexão de instância dos Hubs de Eventos do Azure. Este campo deve corresponder a este padrão Endpoint=sb://<FQDN>/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<KeyValue>;EntityPath=<PathName> |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Obrigatório se .secret não for especificado.
Azure Key Vault uri onde o segredo (cadeia de conexão) está armazenado. |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName |
Obrigatório se .secret.keyVault for especificado. O nome secreto do cofre da Chave do Azure onde o segredo (cadeia de conexão) está armazenado. |
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match |
Opcional. Os nomes dos eventos do Spark separados por vírgula permitem especificar quais eventos coletar. Por exemplo: SparkListenerApplicationStart,SparkListenerApplicationEnd |
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match |
Opcional. Os nomes de logger Log4j separados por vírgula, você pode especificar quais logs coletar. Por exemplo: org.apache.spark.SparkContext,org.example.Logger |
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match |
Opcional. Os sufixos de nome de métrica do Spark, separados por vírgula, permitem especificar quais métricas recolher. Por exemplo: jvm.heap.used |
spark.fabric.pools.skipStarterPools |
Obrigatório. Esta propriedade Spark é usada para forçar uma sessão Spark sob demanda. Você deve definir o valor como true ao usar o pool padrão para acionar as bibliotecas para emitir logs e métricas. |
Nota
A cadeia de conexão da instância do Azure EventHub sempre deve conter o EntityPath
, que é o nome da instância dos Hubs de Eventos do Azure.
Exemplo de dados de log
Aqui está um registro de log de exemplo no formato 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"
// ...
}
}
Depois que o diagnóstico for emitido para o Hub de Eventos do Azure, você poderá usar esse Hub de Eventos como uma fonte em um Fluxo de Eventos de Malha para processar ou rotear os dados.
Espaços de trabalho de malha com rede virtual gerenciada
Crie um ponto de extremidade privado gerenciado para os Hubs de Eventos do Azure de destino. Para obter instruções detalhadas, consulte Criar e usar pontos de extremidade privados gerenciados no Microsoft Fabric - Microsoft Fabric.
Depois que o ponto de extremidade privado gerenciado for aprovado, os usuários poderão começar a emitir logs e métricas para os Hubs de Eventos do Azure de destino.