Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os pools do Apache Spark no Azure Synapse usam runtimes para unir versões de componentes essenciais, como otimizações, pacotes e conectores do Azure Synapse, com uma versão específica do Apache Spark. Cada tempo de execução é atualizado periodicamente para incluir novas melhorias, recursos e patches. Ao criar um pool do Apache Spark sem servidor, selecione a versão correspondente do Apache Spark. Com base nisso, o pool vem pré-instalado com os componentes e pacotes de tempo de execução associados.
Os runtimes têm as seguintes vantagens:
- Tempos de inicialização de sessão mais rápidos
- Compatibilidade testada com versões específicas do Apache Spark
- Acesso a conectores populares e compatíveis e pacotes open-source
Versões de runtime do Azure Synapse com suporte
Dica
É altamente recomendável atualizar proativamente cargas de trabalho para uma versão ga mais recente do runtime, que é o Azure Synapse Runtime para Apache Spark 3.4 (GA). Consulte o guia de migração do Apache Spark.
A tabela a seguir lista o nome do runtime, a versão do Apache Spark e a data de liberação para as liberações do Azure Synapse Runtime com suporte.
Nome do runtime | Data de liberação | Fase de liberação | Data do anúncio do fim do suporte | Data de vigência do fim do suporte |
---|---|---|---|---|
Runtime do Azure Synapse para Apache Spark 3.5 | 27 de maio de 2025 | Visualização pública | Não aplicável | Não aplicável |
Azure Synapse Runtime para Apache Spark 3.4 | 21 Novembro, 2023 | EOSA | 30 de abril de 2025 | 1º trimestre de 2026 |
Runtime do Azure Synapse para Apache Spark 3.3 | 17 de novembro de 2022 | preterido e em breve desabilitado | 12 de julho de 2024 | 31 de março de 2025 |
Estágios de liberação do runtime
Para o runtime completo das políticas de suporte e ciclo de vida do Apache Spark, veja o runtime do Azure Synapse para o ciclo de vida e a capacidade de suporte do Apache Spark.
Patch de runtime
Os runtimes do Azure Synapse para patches do Apache Spark são distribuídos mensalmente contendo correções de bugs, recursos e segurança para o mecanismo principal, ambientes de linguagem, conectores e bibliotecas do Apache Spark.
Observação
- As atualizações de manutenção serão aplicadas automaticamente a novas sessões para um determinado pool do Apache Spark sem servidor.
- Você deve testar e validar que os aplicativos sejam executados corretamente ao se usar novas versões de runtime.
Importante
Patches de segurança do Log4j 1.2.x
A biblioteca Log4j de código aberto versão 1.2.x possui várias CVEs (Vulnerabilidades e Exposições Comuns) conhecidas, conforme descrito aqui.
Em todos os runtimes do Pool do Spark do Synapse corrigimos os JARs Log4j 1.2.17 para mitigar as seguintes CVEs: CVE-2019-1751, CVE-2020-9488, CVE-2021-4104, CVE-2022-23302, CVE-2022-2330, CVE-2022-23307
O patch aplicado funciona removendo os seguintes arquivos que são necessários para invocar as vulnerabilidades:
org/apache/log4j/net/SocketServer.class
org/apache/log4j/net/SMTPAppender.class
org/apache/log4j/net/JMSAppender.class
org/apache/log4j/net/JMSSink.class
org/apache/log4j/jdbc/JDBCAppender.class
org/apache/log4j/chainsaw/*
Embora as classes acima não tenham sido usadas nas configurações padrão do Log4j no Synapse, é possível que algum aplicativo de usuário ainda dependa delas. Se o aplicativo precisar usar essas classes, use o Gerenciamento da Biblioteca para adicionar uma versão segura do Log4j ao Pool do Spark. Não use o Log4j versão 1.2.17, pois ele estaria reintroduzindo as vulnerabilidades.
A política de patch difere com base na fase do ciclo de vida do runtime:
Tempo de execução GA (disponibilidade geral): não receba atualizações nas versões principais (ou seja, 3.x -> 4.x). E atualizará uma versão secundária (ou seja, 3.x -> 3.y), desde que não haja impactos de depreciação ou regressão.
Runtime de versão prévia: nenhuma atualização de versão principal, a menos que seja estritamente necessário. As versões secundárias (3.x -> 3.y) serão atualizadas para adicionar recursos mais recentes a um runtime.
O tempo de execução do LTS (Suporte de Longo Prazo) é corrigido apenas com correções de segurança.
O tempo de execução anunciado para o fim do suporte não terá correções de bugs e recursos. As correções de segurança são portadas com base na avaliação de risco.
Migração entre versões do Apache Spark – suporte
Este guia fornece uma abordagem estruturada para usuários que procuram atualizar o Runtime do Azure Synapse para cargas de trabalho do Apache Spark para a versão mais recente da GA, como a 3.4. A atualização para a versão mais recente permite que os usuários se beneficiem de aprimoramentos de desempenho, novos recursos e medidas de segurança aprimoradas. É importante observar que a transição para uma versão superior pode exigir ajustes no código do Spark existente devido a incompatibilidades ou recursos obsoletos.
Etapa 1: avaliar e planejar
- Avaliar a compatibilidade: Comece revisando os guias de migração do Apache Spark para identificar possíveis incompatibilidades, recursos preteridos e novas APIs entre a versão atual do Spark e a versão de destino (por exemplo, 3.4).
- Analisar base de código: examine cuidadosamente o código do Spark para identificar o uso de APIs preteridas ou modificadas. Preste atenção especial às consultas SQL e às UDFs (Funções Definidas pelo Usuário), que podem ser afetadas pela atualização.
Etapa 2: Criar um novo pool do Spark para teste
- Criar um novo pool: no Azure Synapse, vá para a seção Pools do Spark e configure um novo pool do Spark. Selecione a versão do Spark de destino (por exemplo, 3.4) e configure-a de acordo com seus requisitos de desempenho.
- Definir a configuração do pool do Spark: verifique se todas as bibliotecas e dependências em seu novo pool do Spark foram atualizadas ou substituídas para serem compatíveis com o Spark 3.4.
Etapa 3: Migrar e testar seu código
- Migrar código: atualize seu código para estar em conformidade com as APIs novas ou revisadas no Apache Spark 3.4. Isso envolve o tratamento de funções preteridas e a adoção de novos recursos, conforme detalhado na documentação oficial do Apache Spark.
- Teste no ambiente de desenvolvimento: teste o código atualizado em um ambiente de desenvolvimento no Azure Synapse, não localmente. Esta etapa é essencial para identificar e corrigir quaisquer problemas antes de passar para a produção.
- Implantar e monitorar: após testes e validação completos no ambiente de desenvolvimento, implante seu aplicativo no novo pool do Spark 3.4. É fundamental monitorar o aplicativo em busca de comportamentos inesperados. Utilize as ferramentas de monitoramento disponíveis no Azure Synapse para acompanhar o desempenho dos aplicativos Spark.
Pergunta: Quais etapas devem ser tomadas para migrar para o 3.X?
Resposta: Consulte o guia de migração do Apache Spark.
Pergunta: Recebi um erro quando tentei atualizar o runtime do pool do Spark usando o cmdlet do PowerShell quando eles têm bibliotecas anexadas.
Resposta: Não use o cmdlet do PowerShell se você tiver bibliotecas personalizadas instaladas em seu workspace do Synapse. Em vez disso, siga estas etapas:
- Recrie o Pool do Spark do zero.
- Faça downgrade do Pool do Spark atual, remova todos os pacotes anexados e atualize novamente para a versão mais recente do GA, como a 3.4
Pergunta: Por que não consigo atualizar para a versão 3.4 sem recriar um novo pool do Spark?
Resposta: Isso não é permitido na experiência do usuário, o cliente pode usar o Azure PowerShell para atualizar a versão do Spark. Use "ForceApplySetting", para que todos os clusters existentes (com a versão antiga) sejam desativados.
Consulta de exemplo:
$_target_work_space = @("workspace1", "workspace2")
Get-AzSynapseWorkspace |
ForEach-Object {
if ($_target_work_space -contains $_.Name) {
$_workspace_name = $_.Name
Write-Host "Updating workspace: $($_workspace_name)"
Get-AzSynapseSparkPool -WorkspaceName $_workspace_name |
ForEach-Object {
Write-Host "Updating Spark pool: $($_.Name)"
Write-Host "Current Spark version: $($_.SparkVersion)"
Update-AzSynapseSparkPool -WorkspaceName $_workspace_name -Name $_.Name -SparkVersion 3.4 -ForceApplySetting
}
}
}