Versões de liberação
O Amazon Athena para Apache Spark oferece as seguintes versões de lançamento:
Versão 3 do mecanismo PySpark
A versão 3 do PySpark inclui a versão 3.2.1 do Apache Spark. Com essa versão, você pode executar o código Spark em cadernos no console do Athena.
Versão 3.5 do Apache Spark
A versão 3.5 do Apache Spark é baseada no Amazon EMR 7.12 e inclui a versão 3.5.6 do Apache Spark. Com essa versão, você pode executar o código Spark no caderno do Estúdio Unificado Amazon SageMaker AI ou em seus clientes Spark compatíveis de preferência. Essa versão inclui os principais recursos para oferecer uma experiência aprimorada para workloads interativas:
-
Secure Spark Connect: inclui o Spark Connect como um endpoint da AWS autenticado e autorizado.
-
Atribuição de custos no nível de sessão: os usuários podem acompanhar os custos por sessão interativa nos relatórios de Custos e Uso e do Explorador de Custos da AWS. Para obter mais informações, consulte Atribuição de custos no nível de sessão.
-
Recursos avançados de depuração: inclui suporte em tempo real à interface do usuário e ao servidor de histórico do Spark para depurar workloads tanto das APIs quanto dos cadernos. Para obter mais informações, consulte Acesso à interface do usuário do Spark.
-
Suporte a acesso sem filtros: acesse tabelas protegidas do Catálogo de Dados do AWS Glue em que você tem permissões completas de tabela. Para obter mais informações, consulte Uso do Lake Formation com grupos de trabalho do Athena Spark.
Propriedades padrão do Spark
A tabela a seguir lista as propriedades do Spark e seus valores padrão que são aplicados às sessões do Athena SparkConnect.
| Chave | Valor padrão | Descrição |
|---|---|---|
|
|
|
Não é modificável. |
|
|
|
|
|
|
|
O número de núcleos que o driver usa. Não é modificável durante a execução inicial. |
|
|
|
A quantidade de memória que cada driver usa. Não é modificável durante a execução inicial. |
|
|
|
Quantidade de sobrecarga de memória atribuída às workloads do Python e a outros processos em execução no driver. Não é modificável durante a execução inicial. |
|
|
|
O disco do driver do Spark. Não é modificável durante a execução inicial. |
|
|
|
O número de núcleos que cada executor usa. Não é modificável durante a execução inicial. |
|
|
|
A quantidade de memória que cada driver usa. |
|
|
|
Quantidade de sobrecarga de memória atribuída às workloads do Python e a outros processos em execução no executor. Não é modificável durante a execução inicial. |
|
|
|
O disco do executor do Spark. Não é modificável durante a execução inicial. |
|
|
|
Arquitetura do executor. |
|
|
|
Opções extras de Java para o driver do Spark. Não é modificável durante a execução inicial. |
|
|
|
Opções extras de Java para o executor do Spark. Não é modificável durante a execução inicial. |
|
|
|
O número de contêineres do executor do Spark a serem alocados. |
|
|
|
Opção que ativa a alocação dinâmica de recursos. Essa opção aumenta ou reduz a escala verticalmente do número de executores registrados na aplicação com base na workload. |
|
|
|
O limite inferior do número de executores se você ativar a alocação dinâmica. |
|
|
|
O limite superior do número de executores se você ativar a alocação dinâmica. |
|
|
|
O número inicial de executores a serem executados se você ativar a alocação dinâmica. |
|
|
|
O tempo que um executor pode permanecer inativo antes que o Spark o remova. Isso só se aplica se você ativar a alocação dinâmica. |
|
|
|
O DRA habilitado exige que o rastreamento de shuffle esteja habilitado. |
|
|
|
O tempo limite define por quanto tempo o programador do Spark deve observar um backlog persistente de tarefas pendentes antes de acionar uma solicitação ao gerenciador de clusters para iniciar novos executores. |
|
|
|
|
|
|
|
A classe de implementação do metastore do AWS Glue. |
|
|
|
AccountId do catálogo do AWS Glue. |
|
|
|
A propriedade especifica uma lista separada por vírgulas de prefixos de pacotes das classes que devem ser carregadas pelo Application ClassLoader em vez do ClassLoader isolado criado para o código do Hive Metastore Client. |
|
|
|
Define a implementação do cliente S3 para usar o S3A. |
|
|
|
Define a implementação do cliente S3A (S3A). |
|
|
|
Define a implementação do cliente Native S3 (S3N) para usar o S3A. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Essa propriedade habilita um protocolo de confirmação otimizado para trabalhos do Spark ao gravar dados no Amazon S3. Quando definido como true, ajuda o Spark a evitar operações onerosas de renomeação de arquivos, resultando em gravações atômicas mais rápidas e confiáveis em comparação com o confirmador padrão do Hadoop. |
|
|
|
Esta configuração define explicitamente a região da AWS para o bucket do Amazon S3 acessado por meio do cliente S3A. |
|
|
|
Especifica o tempo limite de conexão do soquete em milissegundos. |
|
|
|
Habilita o S3A “Magic” Committer, um protocolo de confirmação específico, mas de alta performance, que depende do suporte do gerenciador de clusters subjacente para caminhos especiais. |
|
|
|
Relevante somente quando o Magic Committer está habilitado, especifica se a lista de arquivos confirmados por uma tarefa deve ser rastreada na memória em vez de ser gravada em arquivos temporários de disco. |
|
|
|
Esta configuração seleciona explicitamente o algoritmo específico do S3A Output Committer a ser usado (por exemplo, directory, partitioned ou magic). Ao especificar o nome, você escolhe a estratégia que gerencia dados temporários, lida com falhas de tarefas e executa a confirmação atômica final no caminho de destino do Amazon S3. |
|
|
|
A propriedade permite o suporte à Concessão de Acesso do Amazon S3 ao acessar dados do Amazon S3 por meio do cliente do sistema de arquivos S3A/EMRFS. |
|
|
|
Quando a Concessão de Acesso do Amazon S3 está habilitada, essa propriedade controla se o cliente do Amazon S3 deverá recorrer às credenciais tradicionais do IAM se a pesquisa da Concessão de Acesso falhar ou não fornecer permissões suficientes. |
|
|
|
Caminho do Python para o driver. |
|
|
|
Caminho do Python para o executor. |
|
|
|
Essa configuração controla se o Spark utiliza um processo daemon de operador do Python em cada executor. Quando habilitado (true, o padrão), o executor mantém o operador do Python ativo entre as tarefas para evitar a sobrecarga de iniciar e inicializar repetidamente um novo interpretador do Python para cada tarefa, melhorando de forma significativa a performance das aplicações do PySpark. |
|
|
|
Permite o uso do Apache Arrow para otimizar a transferência de dados entre os processos da JVM e do Python no PySpark. |
|
|
|
Propriedade de configuração que controla o comportamento do Spark quando ocorre um erro durante a transferência de dados entre a JVM e o Python usando a otimização do Apache Arrow. |
|
|
|
Propriedade de configuração que controla se o Spark usa um confirmador de arquivos otimizado ao gravar arquivos Parquet em determinados sistemas de arquivos, especificamente sistemas de armazenamento em nuvem, como o Amazon S3. |
|
|
|
Propriedade de configuração do Spark que especifica o nome de classe totalmente qualificado do Hadoop OutputCommitter a ser usado ao gravar arquivos Parquet. |
|
|
|
Essa propriedade controla se o Driver limpa ativamente os recursos da aplicação do Spark associados aos executores que estavam sendo executados em nós que foram excluídos ou expiraram. |
|
|
|
A propriedade permite que a lógica do Spark coloque automaticamente na lista de restrições os executores que estão atualmente sendo desativados (desligamento normal) pelo gerenciador de clusters. Isso impede que o programador envie novas tarefas aos executores que estão prestes a sair, melhorando a estabilidade do trabalho ao reduzir a escala verticalmente dos recursos. |
|
|
|
Tempo máximo que o Spark aguardará até que uma tarefa seja migrada com êxito de um executor em desativação antes de colocar o host na lista de restrições. |
|
|
|
Informa ao Spark para que seja leniente e não invalide uma tentativa de etapa por completo se ocorrer uma falha de busca ao ler dados de shuffle de um executor em desativação. A falha de busca é considerada recuperável, e o Spark buscará novamente os dados em um local diferente (possivelmente exigindo reprocessamento), priorizando a conclusão do trabalho em vez do tratamento rigoroso de erros durante desligamentos regulares. |
|
|
|
Essa propriedade geralmente é usada internamente ou em configurações específicas do gerenciador de clusters para definir a duração total máxima que o Spark espera que o processo de desativação do host leve. Se o tempo real de desativação exceder esse limite, o Spark poderá tomar medidas agressivas, como colocar o host na lista de restrições ou solicitar o encerramento forçado para liberar o recurso. |
|
|
|
Quando uma tarefa falha ao obter dados de shuffle ou de RDD de um host específico, definir o valor como true instrui o Spark a cancelar o registro de todos os blocos de saída associados à aplicação com falha nesse host. Isso evita que futuras tarefas tentem buscar dados de um host não confiável, forçando o Spark a recalcular os blocos necessários em outros lugares e aumentando a robustez do trabalho contra problemas intermitentes de rede. |