Camadas de arquitetura e serviço - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Camadas de arquitetura e serviço

A arquitetura de EMR serviços da Amazon consiste em várias camadas, cada uma das quais fornece determinados recursos e funcionalidades ao cluster. Esta seção fornece uma visão geral das camadas e dos componentes de cada uma.

Armazenamento

A camada de armazenamento inclui os diferentes sistemas de arquivos que são usados com o cluster. Existem vários tipos diferentes de opções de armazenamento, da seguinte maneira.

Sistema de arquivos distribuídos Hadoop () HDFS

O Hadoop Distributed File System (HDFS) é um sistema de arquivos distribuído e escalável para o Hadoop. HDFSdistribui os dados que armazena entre instâncias no cluster, armazenando várias cópias de dados em instâncias diferentes para garantir que nenhum dado seja perdido se uma instância individual falhar. HDFSé um armazenamento efêmero que é recuperado quando você encerra um cluster. HDFSé útil para armazenar em cache resultados intermediários durante o MapReduce processamento ou para cargas de trabalho com E/S aleatória significativa.

Para obter mais informações, consulte Opções e comportamento de armazenamento de instâncias este guia ou acesse o Guia HDFS do usuário no site do Apache Hadoop.

EMRSistema de arquivos (EMRFS)

Usando o EMR File System (EMRFS), a Amazon EMR estende o Hadoop para adicionar a capacidade de acessar diretamente os dados armazenados no Amazon S3 como se fosse um sistema de arquivos como o. HDFS Você pode usar um HDFS ou o Amazon S3 como sistema de arquivos em seu cluster. Na maioria das vezes, o Amazon S3 é usado para armazenar dados de entrada e saída, e os resultados intermediários são armazenados nele. HDFS

Sistema de arquivos local

O sistema de arquivos local é a um disco conectado localmente. Quando você cria um cluster Hadoop, cada nó é criado a partir de uma EC2 instância da Amazon que vem com um bloco pré-configurado de armazenamento em disco pré-conectado chamado armazenamento de instâncias. Os dados sobre volumes de armazenamento de instâncias persistem somente durante o ciclo de vida de sua instância Amazon. EC2

Gerenciamento de recursos de cluster

A camada de gerenciamento de recursos é responsável por gerenciar os recursos de cluster e agendar os trabalhos para o processamento de dados.

Por padrão, a Amazon EMR usa YARN (Yet Another Resource Negotiator), que é um componente introduzido no Apache Hadoop 2.0 para gerenciar centralmente recursos de cluster para várias estruturas de processamento de dados. No entanto, existem outras estruturas e aplicativos oferecidos na Amazon EMR que não são usados YARN como gerenciador de recursos. A Amazon EMR também tem um agente em cada nó que administra YARN componentes, mantém o cluster íntegro e se comunica com a Amazon. EMR

Como as Instâncias Spot são frequentemente usadas para executar nós de tarefas, a Amazon EMR tem a funcionalidade padrão para agendar YARN trabalhos para que os trabalhos em execução não falhem quando os nós de tarefas executados em Instâncias Spot forem encerrados. EMRA Amazon faz isso permitindo que os processos principais do aplicativo sejam executados somente nos nós principais. O processo principal da aplicação controla os trabalhos em execução e precisa permanecer ativo durante a vida útil do trabalho.

A EMR versão 5.19.0 e posterior da Amazon usa o recurso integrado de rótulos de YARN nós para fazer isso. (As versões anteriores usavam um patch de código). As propriedades nas classificações de capacity-scheduler configuração yarn-site e são configuradas por padrão para que o planejador YARN de capacidade e o agendador justo aproveitem os rótulos dos nós. A Amazon rotula EMR automaticamente os nós principais com o CORE rótulo e define as propriedades para que os mestres do aplicativo sejam programados somente nos nós com o CORE rótulo. A modificação manual das propriedades relacionadas nas classificações de configuração yarn-site e capacity-scheduler, ou diretamente nos XML arquivos associados, pode interromper esse recurso ou modificar essa funcionalidade.

Estruturas de processamento de dados

A camada de estruturas de processamento de dados é o mecanismo usado para processar e analisar dados. Há muitas estruturas disponíveis que são executadas YARN ou têm seu próprio gerenciamento de recursos. Estruturas diferentes estão disponíveis para tipos distintos de necessidades de processamento, como e lote, interativo, na memória, streaming e assim por diante. A estrutura que você escolhe depende do seu caso de uso. A escolha afeta as linguagens e interfaces disponíveis na camada de aplicativo, que é a camada usada para interagir com os dados que você deseja processar. As principais estruturas de processamento disponíveis para a Amazon EMR são o Hadoop MapReduce e o Spark.

Hadoop MapReduce

O Hadoop MapReduce é um modelo de programação de código aberto para computação distribuída. Ele simplifica o processo de gravação de aplicativos distribuídos em paralelo, manipulando toda a lógica, enquanto você fornece as funções Map e Reduce. A função Map mapeia dados para conjuntos de pares de chave/valor chamados de resultados intermediários. A função Reduce combina os resultados intermediários, aplica algoritmos adicionais e produz o resultado final. Existem várias estruturas disponíveis para MapReduce, como o Hive, que gera automaticamente os programas Map e Reduce.

Para obter mais informações, acesse How map and reduce operations are actually carried out no site Wiki do Apache Hadoop.

Apache Spark

O Spark é um modelo de programação e estrutura de cluster para o processamento de cargas de trabalho de Big Data. Como o Hadoop MapReduce, o Spark é um sistema de processamento distribuído de código aberto, mas usa gráficos acíclicos direcionados para planos de execução e armazenamento em cache na memória para conjuntos de dados. Ao executar o Spark na AmazonEMR, você pode usá-lo EMRFS para acessar diretamente seus dados no Amazon S3. O Spark oferece suporte a vários módulos de consulta interativos, como o SQL Spark.

Para obter mais informações, consulte Apache Spark em EMR clusters da Amazon no Amazon EMR Release Guide.

Aplicações e programas

A Amazon EMR oferece suporte a muitos aplicativos, como Hive, Pig e a biblioteca Spark Streaming, para fornecer recursos como o uso de linguagens de alto nível para criar cargas de trabalho de processamento, aproveitar algoritmos de aprendizado de máquina, criar aplicativos de processamento de streams e criar data warehouses. Além disso, a Amazon EMR também oferece suporte a projetos de código aberto que têm sua própria funcionalidade de gerenciamento de cluster em vez de usarYARN.

Você usa várias bibliotecas e linguagens para interagir com os aplicativos que você executa na AmazonEMR. Por exemplo, você pode usar Java, Hive ou Pig com MapReduce Spark Streaming, Spark MLlib e GraphX com SparkSQL.

Para obter mais informações, consulte o Guia de EMR lançamento da Amazon.