Apache Spark no Amazon EMR
Por que usar o Apache Spark no EMR?
O Amazon EMR permite criar data lakes transacionais e abertos usando o Apache Spark e o Apache Iceberg. Nosso runtime otimizado para desempenho é 100% compatível com as APIs do Spark de código aberto, executando tarefas até 4,5 x mais rápido do que as versões equivalentes disponíveis publicamente, além de proporcionar um desempenho de gravação no Iceberg 2,7 x mais veloz.
O EMR oferece suporte ao Apache Iceberg v3 e ao Spark 4.0 (versão prévia), possibilitando o uso de recursos como transações ACID e evolução de esquemas, além de funcionalidades como o tipo de dados VARIANT, o processamento de dados semiestruturados em larga escala e a conformidade com o padrão ANSI SQL para garantir a integridade dos dados. Seja para ter o controle detalhado do EC2, a escalabilidade baseada em contêineres do EKS ou a praticidade do EMR Sem Servidor, o Amazon EMR entrega velocidade, confiabilidade e integridade de dados.
Recursos e benefícios
O runtime do Apache Spark otimizado para desempenho do Amazon EMR acelera as workloads de data lake com uma execução até 4,5 x mais rápida em comparação às versões de código aberto equivalentes, mantendo 100 % de compatibilidade de API. Essa otimização também se aplica às operações do Apache Iceberg, proporcionando um desempenho de gravação 2,7 x mais rápido para data lakes transacionais que exigem velocidade e confiabilidade.
Com suporte ao Apache Iceberg v3 e ao Spark 4.0 (versão prévia), o EMR disponibiliza recursos avançados, como transações ACID, evolução de esquemas, o tipo de dados VARIANT para o processamento de dados semiestruturados e conformidade com o padrão ANSI SQL.
O runtime do Spark do Amazon EMR otimiza os planos de consulta para que toda a execução ocorra na memória, maximizando o aproveitamento dos recursos de hardware. Ao simplificar o tratamento dos dados intermediários, o EMR reduz o tempo necessário para obtenção dos resultados das workloads de machine learning mais exigentes em termos de recursos, possibilitando uma evolução mais rápida dos trabalhos.
Modernize seu fluxo de trabalho com o SageMaker Unified Studio e o EMR Studio, que oferecem ambientes integrados para uso de SQL, Python e Scala. Utilize o Amazon Q Developer para gerar código PySpark otimizado e solucionar problemas em planos de execução complexos (DAGs) em tempo real. Diferentemente da versão padrão do Spark, o EMR conta com a Interface do Usuário Persistente do Spark, que permite analisar e depurar registros de execução das tarefas mesmo após o encerramento das aplicações sem servidor ou dos clusters temporários. Essa persistência é fundamental para atividades de auditoria e para o ajuste contínuo de desempenho em ambientes de produção.
O EMR Serverless elimina desafios operacionais ao oferecer uma experiência imediata de uso de blocos de anotações, sem necessidade de criação, dimensionamento ou gerenciamento de clusters. Basta conectar o ambiente de desenvolvimento de sua preferência, como o Estúdio Unificado Amazon SageMaker ou o JupyterLab, a uma aplicação do EMR Sem Servidor e começar a realizar consultas. O runtime do EMR para Spark garante que o código executado de forma interativa tenha a mesma velocidade de nível corporativo que seus pipelines de produção. Seja para análises pontuais em grandes volumes de dados armazenados no Amazon S3 ou para executar tarefas complexas de engenharia de atributos, o Amazon EMR entrega um ambiente eficiente e de alto desempenho, ideal para acelerar seus fluxos de trabalho de ciência de dados mais essenciais.
O agente de upgrade do Apache Spark identifica automaticamente alterações na API e modificações comportamentais em aplicações PySpark e Scala. Os engenheiros podem iniciar upgrades diretamente do Estúdio Unificado SageMaker ou do IDE de sua escolha, ajudados pela compatibilidade MCP (Protocolo de contexto de modelo). Durante o processo de upgrade, o agente analisa o código existente e sugere alterações específicas, e os engenheiros podem revisar e aprovar antes da implementação. O agente valida a correção funcional por meio de validações de qualidade de dados. Atualmente, o agente é compatível com upgrades do Spark 2.4 para o 3.5 e mantém a precisão do processamento de dados durante todo o processo de upgrade.
Casos de uso
Consuma e processe dados em tempo real do Amazon Kinesis, do Apache Kafka ou de outros fluxos de dados com o Spark Streaming no EMR. Execute analytics de streaming de modo tolerante a falhas e grave os resultados no S3 ou no HDFS armazenado no cluster.
O Apache Spark no EMR inclui o MLlib para vários algoritmos de machine learning escaláveis ou você pode usar suas próprias bibliotecas. Ao armazenar conjuntos de dados na memória durante um trabalho, o Spark obtém excelente performance para consultas iterativas comuns em cargas de trabalho de machine learning. Você pode melhorar as capacidades do Amazon Sagemaker ao conectar a instância do notebook a um cluster do Apache Spark sendo executado no Amazon EMR, com o Amazon Sagemaker Spark para treinar facilmente modelos e hospedar modelos.
Use o Spark SQL para consultas interativas de baixa latência com SQL ou HiveQL. O Spark no EMR pode utilizar o EMRFS para que você tenha acesso ad hoc aos seus conjuntos de dados no S3. Além disso, você pode usar o EMR Studio, blocos de anotações do EMR ou do Zeppelin, ou ferramentas de BI por meio de conexões ODBC e JDBC.
Histórias de sucesso de clientes
Yelp
A equipe de direcionamento de anúncios da Yelp cria modelos de previsão para determinar a probabilidade de um usuário interagir com o anúncio. Ao usar o Apache Spark no Amazon EMR para processar grandes volumes de dados para o treinamento de modelos de Machine Learning, a Yelp aumenta a receita e a taxa de cliques de anúncios.
The Washington Post
O Washington Post usa o Apache Spark no Amazon EMR para criar modelos que alimentem seu mecanismo de recomendação de sites para aumentar o engajamento e a satisfação do leitor. Eles utilizam a conectividade de boa performance do Amazon EMR com o Amazon S3 para atualizar modelos praticamente em tempo real.
Krux
Como parte da sua plataforma de gerenciamento de dados para obter insights do cliente, a Krux executa muitas workloads de machine learning e processamento geral usando o Apache Spark. A Krux usa clusters temporários do Amazon EMR com capacidade spot do Amazon EC2 para economizar custos, além de utilizar o Amazon S3 com o EMRFS como uma camada de dados para o Apache Spark.
GumGum
A GumGum, uma plataforma de anúncios em imagens e telas, usa o Spark no Amazon EMR para previsão de inventário, processamento de logs de clickstreams e análise ad hoc de dados não estruturados no Amazon S3. As melhorias no desempenho do Spark economizaram para a GumGum tempo e dinheiro que seriam gastos nessas cargas de trabalho.
Hearst Corporation
A Corporação Hearst, uma grande empresa de mídia e informações diversificadas, tem clientes visualizando conteúdo em mais de 200 propriedades da web. Ao usar o Apache Spark Streaming no Amazon EMR, a equipe editorial da Hearst consegue controlar em tempo real quais artigos estão apresentando bom desempenho e quais temas são os assuntos do momento.
CrowdStrike
A CrowdStrike disponibiliza proteção de endpoint para eliminar violações. Eles usam o Amazon EMR com Spark para processar centenas de terabytes de dados de evento, que são compilados em descrições comportamentais de nível superior nos hosts. Por meio desses dados, a CrowdStrike pode extrair dados de evento em conjunto e identificar a presença de atividades maliciosas.