26 de mar de 2018

Hadoop e Big Data: entenda como essa plataforma processa dados

Udacity Brasil

Hadoop e Big Data são palavras conhecidas dos profissionais de data science. A primeira se refere a uma das principais plataformas de computação distribuída do mundo, voltada para o processamento e armazenamento de grandes volumes de dados.

Já big data é o termo utilizado para se referir a esses conjuntos de dados, grandes demais para serem processados por soluções tradicionais. Muitas vezes, também é comum ouvir big data como um sinônimo para as ferramentas que facilitam a análise dessas informações.

Leia: Quer seguir carreira em data science? Baixe o ebook da Udacity!

O conceito por trás do Hadoop

O Hadoop é um framework de código aberto desenvolvido, mantido pela Apache Software Foundation e inspirado pelo Google.

Em 2003, o Google enfrentava um grande desafio: indexar as bilhões de páginas da internet em sua ferramenta de busca.

Era preciso descobrir uma forma rápida e eficiente de analisar tanto essa enorme quantidade de dados quanto de entregar resultados significativos para os usuários – o resultado das buscas em si.

Parte da solução foi a criação do modelo de programação MapReduce, desenvolvido pela equipe da empresa e apresentado em um artigo em 2004.

Em termos simples, o MapReduce é capaz de separar volumes imensos de dados em partes pequenas, que são então espalhadas por milhares de computadores.

Em vez de mover dados para um software de processamento – o que seria vagaroso em volumes grandes –, é como se o processamento fosse movido para onde estão os dados, o que traz mais velocidade.

Além disso, o MapReduce também permite uma tolerância maior a falhas: mesmo se algum dos sistemas envolvidos falhar, os dados serão preservados e o processamento continuará.

E por serem tantos sistemas, é possível rodar o MapReduce em máquinas relativamente modestas quando comparadas com o equipamento de ponta de um data center tradicional.

Inspirados pelo MapReduce, mas sem acesso ao código do Google, Doug Cutting e Mike Cafarella começaram a desenvolver o Hadoop. O paradigma foi rapidamente adotado pelo Yahoo!, um dos maiores apoiadores do projeto.

Leia: O que é MapReduce, um modelo de programação criado pelo Google

Os diferentes módulos do Hadoop

O Hadoop é feito por uma coleção de subprojetos. Dois são considerados os mais importantes: o Hadoop MapReduce, que trabalha a parte do processamento de dados, e o HDFS, que lida com o armazenamento de dados distribuídos.

Além do Hadoop MapReduce e do HDFS, existem diversos outros módulos e subprojetos da plataforma como o Avro, o Pig e o Hive, que podem complementar soluções específicas, adicionando abstrações de maior nível.

Hadoop MapReduce

O Hadoop MapReduce é capaz de lidar com grandes conjuntos de dados ao distribuir o seu processamento em múltiplos nós e, depois, combinar ou reduzir os resultados desses nós.

O nome MapReduce se deve ao método de processamento dos dados: primeiro, eles são mapeados em vários nós e, depois, reduzidos ou combinados por um master node. Caso um nó falhe em sua tarefa, o master node redistribui sua responsabilidade para os outros nós disponíveis.

Para entender como esse sistema funciona, pense em situação em que pessoas teriam que contar o número de vezes em que a palavra “dados” aparece em um artigo científico sobre big data de 30 páginas.

Uma abordagem de um sistema tradicional de processamento envolveria uma única pessoa realizando a contagem do começo ao fim do texto, entregando o resultado a quem requisitou a tarefa.

Já o MapReduce seria algo como a divisão do trabalho: cada página teria uma pessoa para anotar o número de vezes que a palavra aparece. Ao final, um coordenador receberia os valores e somaria tudo, reduzindo 30 resultados a apenas um.

Caso uma pessoa falhasse ou não executasse o trabalho, sua página seria redistribuída pelo coordenador para as restantes – é de maneira similar que funciona o elemento de tolerância a falhas do Hadoop MapReduce.

Hadoop Distributed File System (HDFS)

Na essência, o HDFS é um sistema capaz de armazenar arquivos muito grandes de forma distribuída. Com essa construção, é possível abrigar volumes imensos de dados que não caberiam em soluções tradicionais de armazenamento.

Nesse subprojeto, existem dois nós (ou nodes) para armazenar dados: o namenode e o datanode. Enquanto o namenode organiza o sistema de arquivos com metadados, os datanodes são os blocos de armazenamento.

O HDFS divide os dados em pequenos pedaços espalhados pelos datanodes, o que permite, entre outras coisas, o processamento paralelo.

Para evitar qualquer falha causada por problemas técnicos no hardware, os namenodes normalmente contam com cópias secundárias que assumem o papel no caso de falha do primário, o que garante confiabilidade ao sistema.

Leia: O que é data storytelling e como utilizá-la nos negócios

Aplicativos e empresas que usam Hadoop

O Hadoop deixou o big data mais acessível para organizações de diversos setores e portes. Hoje há centenas que utilizam a plataforma, incluindo grandes empresas de tecnologia:

  • Yahoo!: a empresa, que está entre as maiores apoiadoras do Hadoop, utiliza o framework para diversas finalidades e centenas de petabytes de armazenamento
  • Facebook: a rede social usa o Hadoop para armazenar cópias de dados internos, além de dimensionar dados que servirão de fontes para relatórios e análises complexas. O Facebook tem cerca de 15 petabytes de armazenamento em nodes com Hadoop
  • LinkedIn: a rede social profissional também utiliza o Hadoop para armazenar dados e realizar o processamento de pesquisas
  • Alibaba: a gigante chinesa tem um cluster voltado para o processamento de dados dos negócios — e também do iSearch, seu sistema de buscas
  • Amazon: por meio da sua subsidiária A9.com, a Amazon utiliza o Hadoop para pesquisas de produtos e sistema de recomendações, entre outras análises, em combinação com ferramentas de machine learning

Agora que você aprendeu mais sobre Hadoop e big data, que tal conhecer a trilha de carreira da Udacity que o prepara para se tornar um cientista de dados profissional?

Udacity Brasil