Apache Hadoop no HAQM EMR

Por que usar o Apache Hadoop no EMR?

O Apache™ Hadoop® é um projeto de software de código aberto que pode ser usado para processar de modo eficiente grandes conjuntos de dados. Em vez de usar um computador de grande porte para processar e armazenar os dados, o Hadoop permite o agrupamento de hardware padrão em clusters para analisar em paralelo grandes conjuntos de dados.

Existem vários aplicativos e mecanismos de execução no ecossistema do Hadoop, o que disponibiliza várias ferramentas compatíveis com as necessidades das suas cargas de trabalho de análise. O HAQM EMR facilita a criação e o gerenciamento de clusters elásticos totalmente configurados de instâncias do HAQM EC2 executando o Hadoop e outras aplicações no ecossistema do Hadoop.

Aplicativos e estruturas no ecossistema do Hadoop

Open all

O termo Hadoop comumente se refere ao projeto Apache Hadoop em si, que inclui o MapReduce (estrutura de execução), o YARN (gerente de recursos) e o HDFS (armazenamento distribuído). Você também pode instalar o Apache Tez, um framework de última geração que pode substituir o Hadoop MapReduce como um mecanismo de execução. O HAQM EMR também inclui o EMRFS, um conector que permite que o Hadoop use o HAQM S3 como uma layer de armazenamento.

No entanto, também existem outros aplicativos e outras estruturas no ecossistema do Hadoop, como ferramentas que permitem consultas de baixa latência, GUIs para consultas interativas, várias interfaces (como SQL) e bancos de dados NoSQL distribuídos. O ecossistema do Hadoop inclui várias ferramentas de código aberto, projetadas para criar funcionalidade adicional nos principais componentes do Hadoop. É possível usar o HAQM EMR para instalar e configurar ferramentas facilmente, como Hive, Pig, Hue, Ganglia, Oozie e HBase, no seu cluster. Também é possível executar outros frameworks, como o Apache Spark para processamento na memória, ou o Presto para SQL interativo, além do Hadoop no HAQM EMR.

Hadoop: os componentes básicos

Open all

O HAQM EMR instala e configura aplicações no projeto do Hadoop de modo programático, como o Hadoop MapReduce, o YARN, o HDFS e o Apache Tez nos nós do seu cluster.

O Hadoop MapReduce e o Tez, que são mecanismos de execução no ecossistema do Hadoop, processam cargas de trabalho usando estruturas que dividem os trabalhos em itens menores, os quais podem ser distribuídos entre os nós no seu cluster do HAQM EMR. Eles foram criados supondo que qualquer máquina no seu cluster possa falhar a qualquer momento, além de ter sido projetado com tolerância a falhas. Se um servidor executando uma tarefa falhar, o Hadoop reexecutará essa tarefa em outra máquina até a sua conclusão.

Você pode escrever programas do MapReduce e do Tez em Java, usar o Hadoop Streaming para executar scripts personalizados em paralelo, utilizar o Hive e o Pig para abstrações de nível superior no MapReduce e no Tez, ou outras ferramentas para interagir com o Hadoop.

A partir do Hadoop 2, o gerenciamento de recursos é feito pelo Yet Another Resource Negotiator (YARN). O YARN monitora todos os recursos no cluster, e garante que esses recursos sejam alocados de modo dinâmico para realizar as tarefas no trabalho de processamento. O YARN pode gerenciar as cargas de trabalho do Hadoop MapReduce e do Tez, como também de outras estruturas distribuídas, como o Apache Spark.

O uso do EMR File System (EMRFS) no cluster do HAQM EMR permite utilizar o HAQM S3 como a camada de dados do Hadoop. O HAQM S3 é altamente escalável, de baixo custo e projetado para oferecer resiliência, o que o torna um armazenamento de dados excelente para o processamento de big data. Ao armazenar dados no HAQM S3, você pode desassociar a camada de computação da camada de armazenamento, o que permite dimensionar o cluster do HAQM EMR de acordo com o volume de CPU e memória exigido para as suas cargas de trabalho, em vez de ter nós adicionais no cluster para maximizar o armazenamento nele. Além disso, você pode encerrar o cluster do HAQM EMR quando ele estiver inativo para economizar custos, enquanto seus dados permanecem no HAQM S3.

O EMRFS é otimizado para o Hadoop para ler e gravar diretamente em paralelo com o HAQM S3 apresentando boa performance, além de poder processar objetos criptografados com criptografia no lado do servidor e do cliente do HAQM S3. O EMRFS permite que você use o HAQM S3 como seu data lake, e o Hadoop no HAQM EMR pode ser usado como uma camada de consulta elástica.

O Hadoop também inclui um sistema de armazenamento distribuído, o Hadoop Distributed File System (HDFS), que armazena dados em discos locais do cluster em grandes blocos. O HDFS tem um fator de replicação configurável (com um padrão de 3 vezes), o que proporciona mais disponibilidade e resiliência. O HDFS monitora a replicação e balanceia dados nos nós, conforme os nós forem falhando e outros novos forem adicionados.

O HDFS é instalado automaticamente com o Hadoop no cluster do HAQM EMR, e é possível usá-lo junto com o HAQM S3 para armazenar dados de entrada e saída. Você pode facilmente criptografar o HDFS por meio de uma configuração de segurança do HAQM EMR. Além disso, o HAQM EMR configura o Hadoop para usar o HDFS e o disco local para dados intermediários criados durante os trabalhos do Hadoop MapReduce, mesmo se os dados de entrada estiverem localizados no HAQM S3.

Vantagens do Hadoop no HAQM EMR

Open all

Você pode inicializar um novo cluster do Hadoop de modo dinâmico e rápido ou adicionar servidores ao cluster do HAQM EMR atual, o que reduz bastante o tempo necessário para disponibilizar recursos para os seus usuários e cientistas de dados. O uso do Hadoop na plataforma da AWS pode aumentar drasticamente sua agilidade organizacional ao diminuir o custo e o tempo necessários para alocar recursos para testes e desenvolvimento.

A configuração, as redes, a instalação do servidor, a configuração de segurança e a manutenção administrativa contínua do Hadoop podem ser atividades complicadas e desafiadoras. Como serviço gerenciado, o HAQM EMR se encarrega dos requisitos de infraestrutura do Hadoop para que você possa concentrar-se nas suas principais atividades empresariais.

Você pode integrar facilmente o ambiente do Hadoop a outros serviços como o HAQM S3, o HAQM Kinesis, o HAQM Redshift e o HAQM DynamoDB para possibilitar movimentação, fluxos de trabalho e análises de dados entre os diversos serviços disponíveis na plataforma da AWS. Além disso, você pode usar o Catálogo de Dados do AWS Glue como um repositório gerenciado de metadados para o Apache Hive e o Apache Spark.

Por definição, muitos trabalhos do Hadoop atingem picos. Por exemplo, um trabalho do ETL pode ser executado por hora, dia ou mês, enquanto trabalhos de modelagem para empresas financeiras ou de sequenciamento genético podem ocorrer apenas algumas vezes por ano. O uso do Hadoop no HAQM EMR permite que você inicialize esses clusters de carga de trabalho facilmente, salve os resultados e encerre os recursos do Hadoop quando eles não forem mais necessários para evitar custos de infraestrutura desnecessários. O EMR6.x suporta o Hadoop 3, que permite que o YARN NodeManager lance contêineres diretamente ou no servidor do cluster EMR ou dentro de um contêiner Docker. Consulte nossa documentação para saber mais.

Ao usar o Hadoop no HAQM EMR, você tem a flexibilidade de executar clusters em qualquer número de zonas de disponibilidade em todas as regiões da AWS. Um possível problema ou ameaça em uma região ou zona pode ser facilmente contornado ao executar em minutos um cluster em outra zona.

O planejamento da capacidade antes da implantação de um ambiente do Hadoop com frequência resulta em recursos inativos dispendiosos ou limitações de recursos. Com o HAQM EMR, é possível criar clusters com a capacidade exigida em minutos e usar o Escalamento Gerenciado EMR para aumentar e reduzir a escala horizontal de modo dinâmico nos nós.

Qual é a relação entre o Hadoop e o big data?

Mais comumente, o Hadoop é usado para processar workloads de big data por ser altamente escalável. Para aumentar a capacidade de processamento do cluster do Hadoop, adicione mais servidores com os recursos de CPU e memória de que você precisa para atender às suas necessidades.

O Hadoop proporciona um alto nível de resiliência e disponibilidade, enquanto continua processando em paralelo cargas de trabalho analíticas computacionais. A combinação de disponibilidade, resiliência e escalabilidade de processamento torna o Hadoop a escolha ideal para cargas de trabalho de big data. É possível usar o HAQM EMR para criar e configurar um cluster de instâncias do HAQM EC2 em execução no Hadoop em minutos, e começar a derivar valor dos seus dados.

Casos de uso

Apache e Hadoop são marcas registradas da Apache Software Foundation.

O Hadoop pode ser usado para analisar dados de clickstreams para segmentar usuários e entender suas preferências. Os publicitários também podem analisar as sequências de cliques e publicar registros de impressão para oferecer anúncios mais eficazes.

Saiba como a Razorfish usa o Hadoop no HAQM EMR para a análise de clickstreams

O Hadoop pode ser usado para processar logs gerados por aplicativos móveis e da web. O Hadoop ajuda os clientes a transformar petabytes de dados não estruturados ou semiestruturados em insights úteis sobre seus aplicativos ou usuários.

Saiba como a Yelp usa o Hadoop no HAQM EMR para determinar os principais recursos do site

 

Os aplicativos do ecossistema do Hadoop, como Hive, permitem que os usuários utilizem o Hadoop MapReduce usando uma interface SQL, o que possibilita a análise em uma grande escala distribuída, além de data warehousing tolerante a falhas. Use o Hadoop para armazenar dados e permitir que os usuários enviem consultas de dados de qualquer tamanho.

Veja como a Netflix usa o Hadoop no HAQM EMR para executar um data warehouse na escala de petabytes

O Hadoop pode ser usado para processar grandes quantidades de dados de genoma e outros grandes conjuntos de dados científicos de maneira rápida e eficaz. A AWS disponibilizou publicamente os dados do projeto 1000 Genomes para a comunidade de forma gratuita.

Leia mais sobre genômica na AWS

 

Graças à sua grande escalabilidade e aos seus custos reduzidos, o Hadoop é ideal para cargas de trabalho de ETL comuns, como a coleta, a classificação, a junção e a agregação de grandes conjuntos de dados, para que sejam consumidas mais facilmente por sistemas de downstream.

Leia sobre como a Euclid usa o Hadoop no HAQM EMR para extração, transformação e carregamento e agregação de dados