Apache Spark no Amazon EMR

Por que usar o Apache Spark no EMR?

O Amazon EMR é o melhor local para executar o Apache Spark. É possível criar clusters gerenciados do Spark com rapidez e facilidade no Console de gerenciamento da AWS, na AWS CLI ou com a API do Amazon EMR. Além disso, você pode utilizar recursos adicionais do Amazon EMR, incluindo a conectividade rápida do Amazon S3 usando o Amazon EMR File System (EMRFS), a integração com o mercado spot do Amazon EC2, o Catálogo de Dados do AWS Glue e o Ajuste de Escala Gerenciado do EMR para adicionar ou remover instâncias do seu cluster. O AWS Lake Formation oferece controle de acesso refinado, enquanto a integração com o AWS Step Functions ajuda a orquestrar pipelines de dados. O EMR Studio (demonstração) é um ambiente de desenvolvimento integrado (IDE) que torna fácil para cientistas e engenheiros de dados desenvolverem, visualizarem e depurarem aplicações de engenharia de dados e ciência de dados escritas em R, Python, Scala e PySpark. O EMR Studio oferece Notebooks Jupyter totalmente gerenciados e ferramentas como Spark UI e YARN Timeline Service para simplificar a depuração. Usando Cadernos do EMR, é fácil experimentar e criar aplicações com o Spark. Se preferir, você pode usar o Apache Zeppelin para criar cadernos interativos e colaborativos para explorar dados usando o Spark.

Saiba mais sobre o Apache Spark aqui

Atributos e benefícios

O EMR apresenta o Ambiente de Tempo de Execução do Amazon EMR para Apache Spark, um ambiente com runtime de desempenho otimizado para o Apache Spark, disponível e ativado por padrão nos clusters do Amazon EMR. O tempo de execução do Amazon EMR para o Apache Spark pode ser até 3x mais rápido do que os clusters sem o tempo de execução EMR, e tem compatibilidade API de 100% com o Apache Spark padrão. Essa performance aprimorada significa que cargas de trabalho executam com maior rapidez, reduzindo custos de computação sem qualquer alteração nos aplicativos.

Ao usar um mecanismo de execução de gráfico acíclico direcionado (DAG), o Apache Spark pode criar planos de consulta eficientes para transformações de dados. O Spark também armazena dados de entrada, saída e intermediários na memória como quadros de dados resilientes, o que permite um processamento rápido e sem custos de E/S, aumentando a performance de cargas de trabalho iterativas e interativas.

O Apache Spark oferece suporte nativo a Java, Scala, SQL e Python, oferecendo a você várias linguagens para a criação de aplicativos. Além disso, você pode enviar consultas SQL ou HiveQL usando o módulo Spark SQL. Além de executar aplicações, você pode usar a API do Spark de modo interativo com Python ou Scala diretamente no shell do Spark, por meio do EMR Studio ou cadernos Jupyter no seu cluster. O suporte ao Apache Hadoop 3.0 no EMR 6.0 proporciona o suporte ao contêiner do Docker para simplificar o gerenciamento de dependências. Você também pode utilizar cadernos do EMR independentes de clusters (baseados no Jupyter) ou usar o Zeppelin para criar cadernos interativos e colaborativos para a exploração e a visualização de dados. É possível ajustar e depurar workloads no console do EMR, que conta com um Servidor de Histórico do Spark fora do cluster e persistente.

O Apache Spark inclui várias bibliotecas para ajudar a criar aplicativos de machine learning (MLlib), processamento de streams (Spark Streaming) e processamento de gráficos (GraphX). Essas bibliotecas estão solidamente integradas ao ecossistema do Spark e podem ser utilizadas automaticamente para contemplar vários casos de uso. Além disso, é possível usar estruturas de aprendizado profundo como Apache MXNet com aplicativos Spark. A integração com o AWS Step Functions permite que você adicione automação e orquestração de fluxos de trabalho de workloads com tecnologia sem servidor em suas aplicações.

Envie trabalhos do Apache Spark com a API Step do EMR, use o Spark com o EMRFS para acessar dados diretamente no S3, reduza custos usando a capacidade spot do EC2, use o Ajuste de Escala Gerenciado do EMR para aumentar ou reduzir dinamicamente a capacidade e execute clusters de longa duração ou temporários, de acordo com a sua workload. Você também pode configurar facilmente a criptografia do Spark e a autenticação do Kerberos usando uma configuração de segurança do EMR. Além disso, é possível usar o Catálogo de Dados do AWS Glue para armazenar metadados de tabelas SQL do Spark ou usar o Amazon SageMaker com os pipelines de machine learning do Spark. O EMR instala e gerencia o Spark no Hadoop YARN, e você também pode adicionar outros aplicativos de big data ao seu cluster. O EMR com o Apache Hudi permite gerenciar com mais eficiência a Captura de dados alterados (CDC) e ajuda a cumprir regulamentos de privacidade como GDPR e CCPA simplificando a exclusão de registros. Clique aqui para obter mais detalhes sobre os recursos do EMR.

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 a análise 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 desempenho 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 cargas de trabalho 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.

    Leia mais »
  • 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.

    Leia mais »
  • 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.

    Leia mais »
  • 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.

    Leia mais »