Runtimes do Azure Synapse
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
Aviso
Notificação de fim do suporte para o Azure Synapse Runtime para Apache Spark 2.4 e Apache Spark 3.1.
- A partir de 29 de setembro de 2023, o Azure Synapse interromperá o suporte oficial para Runtimes do Spark 2.4.
- A partir de 26 de janeiro de 2024, o Azure Synapse descontinuará o suporte oficial para Runtimes do Spark 3.1.
- Após essas datas, não abordaremos nenhum tíquete de suporte relacionado ao Spark 2.4 ou 3.1. Não haverá pipeline de lançamento para correções de bugs ou segurança para o Spark 2.4 e 3.1. A utilização do Spark 2.4 ou 3.1 após as datas de corte de suporte é realizada por sua conta e risco. Desencorajamos fortemente seu uso contínuo devido a possíveis preocupações de segurança e funcionalidade.
Dica
É altamente recomendável atualizar proativamente as cargas de trabalho para uma versão GA mais recente do tempo de execução (por exemplo, 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 de anúncio do fim do suporte | Data de entrada em vigor do Fim do Suporte |
---|---|---|---|---|
Azure Synapse Runtime for Apache Spark 3.4 | 21 de novembro de 2023 | GA (a partir de 8 de abril de 2024) | ||
Runtime do Azure Synapse para Apache Spark 3.3 | 17 de novembro de 2022 | GA (a partir de 23 de fevereiro de 2023) | 2º e 3º tri de 2024 | 1º trimestre de 2025 |
Runtime do Azure Synapse para Apache Spark 3.2 | 8 de julho de 2022 | Fim do suporte anunciado | 8 de julho de 2023 | 8 de julho de 2024 |
Azure Synapse Runtime para Apache Spark 3.1 | 26 de maio de 2021 | Fim do Suporte | 26 de janeiro de 2023 | 26 de janeiro de 2024 |
Azure Synapse Runtime para Apache Spark 2.4 | 15 de dezembro de 2020 | Fim do Suporte | 29 de julho de 2022 | 29 de setembro de 2023 |
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 tempos de execução do Azure Synapse para patches do Apache Spark são lançados 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 disso. 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 geralmente disponível (GA): não recebe 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 Long Term Support (LTS) é corrigido apenas com correções de segurança.
O tempo de execução anunciado pelo 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 desejam atualizar suas cargas de trabalho do Azure Synapse Runtime for Apache Spark das versões 2.4, 3.1, 3.2 ou 3.3 para a versão mais recente do 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 preteridos.
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 sua versão atual do Spark (2.4, 3.1, 3.2 ou 3.3) e a versão de destino (por exemplo, 3.4).
- Analisar a Base de Código: examine cuidadosamente o código do Spark para identificar o uso de APIs preteridas ou modificadas. Preste especial atenção à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.
- Configurar configuração do pool do Spark: certifique-se de que todas as bibliotecas e dependências do novo pool do Spark sejam 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 ser compatível com as APIs novas ou revisadas no Apache Spark 3.4. Isso envolve abordar funções obsoletas e adotar novos recursos, conforme detalhado na documentação oficial do Apache Spark.
- Teste no Ambiente de Desenvolvimento: Teste seu 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 para quaisquer comportamentos inesperados. Utilize as ferramentas de monitoramento disponíveis no Azure Synapse para acompanhar o desempenho de seus aplicativos Spark.
Descrição: Quais passos devem ser tomados na migração da versão 2.4 para a 3.X?
Resposta: Consulte o guia de migração do Apache Spark.
Pergunta: Recebi um erro quando tentei atualizar o tempo de execução do pool do Spark usando o cmdlet do PowerShell quando eles anexaram bibliotecas.
Resposta: Não use o cmdlet do PowerShell se você tiver bibliotecas personalizadas instaladas em seu espaço de trabalho Synapse. Em vez disso, siga estas etapas:
- Recrie o Spark Pool 3.3 do zero.
- Faça o downgrade do Spark Pool 3.3 para 3.1 atual, remova todos os pacotes anexados e atualize novamente para a versão 3.3.