Hadoop

Hadoop

O que é Hadoop?

É um framework que usando modelos de programação simples proporciona o processamento distribuído de grandes massas de dados em clusters de computadores. Ele foi projetado para ser altamente escalável de forma que a partir de um único servidor seja possível expandir para milhares de máquinas, sendo que cada um dos nós oferece computação e armazenamento local. Outra característica importante está no fato de que ao contrário de outras ferramentas onde o hardware é o responsável por proporcionar alta disponibilidade, no caso do Hadoop o próprio framework foi projetado para detectar e fazer o tratamento de falhas na camada de aplicação. Desta forma a entrega de um serviço altamente disponível, fica sob responsabilidade não só do hardware, mas também sob o framework Hadoop.

Módulos

A plataforma Apache Hadoop possui os seguintes principais módulos:

  • Hadoop Common: Conjunto de utilitários de suporte e infraestrutura de rede comumente utilizados pelos demais módulos do Hadoop.
  • Hadoop Distributed File System (HDFS ™) : É o sistema de arquivos utilizado pela plataforma que funciona de modo distribuído fornecendo acesso às informações das massas de dados
  • Hadoop YARN: Conjunto de bibliotecas para programação de tarefas e gerenciamento dos recursos de cluster.

Quem utiliza o Hadoop?

Abaixo segue lista de alguns dos projetos que utilizam a plataforma Hadoop:

  • Ambari: Uma ferramenta baseada na Web para o provisionamento, gerenciamento e monitoramento de grupos, que inclui suporte para HDFS, bem como suporte a outras plataformas e tecnologias que também usam o Hadoop tais como MapReduce, Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig e Sqoop. Ambari também fornece um painel para visualização Health Cluster como heatmaps e capacidade de visualizar aplicativos MapReduce, Pig e Hive. Visualmente fornece recursos user-friendly para diagnosticar o estado do Health Cluster bem como suas características de desempenho.
  • Cassandra: Banco de Dados NoSQL criado pelo Facebook. O Banco de Dados Cassandra usa o Hadoop como parte de armazenamento dos dados. É um Banco de Dados multi-mestre, escalável e isolamento contra falha unitário dos nós do cluster.
  • HBase: Um Banco de Dados escalável, distribuído que suporta o armazenamento de dados estruturado para grandes massas.
  • Hive: É a infraestrutura de armazenamento de dados que fornece sumarização de dados e consultas ad hoc.
  • Mahout: É uma tecnologia de aprendizagem de máquina, escalável e também contém uma biblioteca de mineração de dados.
  • Pig: Uma linguagem de fluxo de dados de alto nível e uma estrutura de execução para computação paralela.
  • Spark: É um motor de computação rápida e de uso geral de dados. O Spark fornece um modelo de programação simples e expressiva que suporta uma ampla gama de aplicações, incluindo ETL, aprendizagem de máquina, processamento de fluxo e gráfico computacional.
  • Tez: É um framework para criação de aplicações de processamento de alta performance em modo batch ou interativo. Construída sobre o Hadoop YARN, que fornece um motor potente e flexível para executar um DAG arbitrária de tarefas para processar os dados, tanto de lote e casos de uso interativos. Tez está sendo adotada por Hive ™, Pig™ e outras estruturas no ecossistema Hadoop, e também por outros softwares comerciais (por exemplo, ferramentas de ETL), para substituir o MapReduce ™ como o mecanismo de execução subjacente.
  • ZooKeeper: É um serviço de coordenação de alto desempenho para aplicações distribuídas.

Razões para usar Hadoop

Segue abaixo algumas das características que fazem com que seja adotado o uso do Hadoop:

  • Alto Grau de Flexibilidade: Atualmente o Hadoop é um dos melhores sistemas de armazenamento que possui a capacidade de armazenar desde conteúdos estruturados como tabelas e arquivos texto, até vídeos, fotos, etc. de forma redundante, rápida e eficiente. Outra característica é o fato de ter estrutura baseada em file system, ou seja, seu armazenamento tem as características do sistema operacional Linux e proporciona o uso de comandos POSIX.
  • Alto Desempenho: Uma das características que faz com que o Hadoop tenha um ótimo desempenho é a sua capacidade de processamento em paralelo tornando as suas cargas de dados extremamente rápidas. Um exemplo que pode ser citado é o fato que operações de MapReduce possuíam baixa performance, assim sendo ele mostrava-se ineficiente para alguns tipos de tarefas, mas aceleradores como Impala e Tez, ou mesmo processadores em Memória como Spark ou Flink, conseguiram fazer com que tais operações se tornassem mais ágeis.
  • Alta Escalabilidade: Considerando um cenário aonde temos um cluster que está com sua capacidade de processamento perto do seu limite, ao adicionarmos novos nós de processamento ao cluster a plataforma Hadoop irá automaticamente identificar o novo recurso disponível e efetuar o balanceamento da carga, sem haver a necessidade de configurações adicionais.
  • Evolução Contínua: A Apache Foundation é a mantenedora do Ecossistema Hadoop, seus usuários ou desenvolvedores estão em todo o mundo usando, testando, sugerindo e melhorando a versão constantemente. Na prática é como ter equipes de desenvolvimento 24×7, antecipando problemas e correções, antes mesmo de nos depararmos com eles. Devido ao fato de ser Open Source, qualquer um pode identificar e sugerir mudanças, diferentemente dos sistemas proprietários, onde somente o desenvolvedor conhece o código e suas peculiaridades.
  • Custo Zero: Qual o custo do Hadoop? Pode ser Zero, somente acessar a página da Apache Foundation, baixar, instalar e começar a usar. Mas claro que poucos colocariam um sistema em produção sem nenhum tipo de suporte, aí podemos pensar em escolher uma distribuição disponível no mercado, tais como fornecidas pelas empresas:

–  Hortonworks : www.hortonworks.com

–  Cloudera : www.cloudera.com

–  MapR : www.mapr.com

Links interessantes

https://br.hortonworks.com/apache/hadoop/

https://www.udemy.com/the-ultimate-hands-on-hadoop-tame-your-big-data/

Gustavo Tancredo

Analista Sênior

gustavo.tancredo@cpsti.com.br

Site da CPS Soluções em TI: http://www.cpsti.com.br

Página da CPS Soluções em TI no Facebook: http://www.facebook.com/cpsti

Twitter da CPS Soluções em TI: https://twitter.com/cps_ti

Deixe um comentário

O seu endereço de e-mail não será publicado.

Compartilhamentos