Conceito

O Hadoop é um projeto da Apache Foundation para o desenvolvimento de ferramentas para computação distribuída e que inclui os seguintes sub-projetos:

  • Hadoop Common: Programas que dão suporte aos demais subprojetos do Hadoop.
  • HDFS: É um sistema de arquivos distribuídos que provê um alto throughput no accesso aos dados de aplicações.
  • MapReduce: É um framework para a distribuição do processamento de grandes volumes de dados em clusters de computadores.


Outros projetos relacionados com o Hadoop:

  • Avro: Sistema de serialização de dados.
  • Chukwa: A data collection system for managing large distributed systems.
  • HBase: A scalable, distributed database that supports structured data storage for large tables.
  • Hive: A data warehouse infrastructure that provides data summarization and ad hoc querying.
  • Mahout: A Scalable machine learning and data mining library.
  • Pig: Linguagem de fluxo de dados de alto nível e framework de execução para computação paralela.
  • ZooKeeper: Serviço de coordenação de alta performance para aplicações distribuídas.


Características 

Hadoop é uma ferramenta (java!) para lidar com grandes quantidades de dados: terabytes ( 1TB = 1024GB ), petabytes ( 1PB = 1024TB ), ...

É composta por dois módulos: HDFS e MapReduce


HDFS (Hadoop Distributed File System) é o sistema de armazenamento baseado num sistema de arquivos próprio e distribuído.

  • Tolerante a falhas
  • Alto throughput
  • Write-once-read-many - baixo controle de concorrência
  • Mantém a lógica de processamento próxima aos dados ao invés de movê-la para o espaço de aplicação
  • Recuperação automática e rápida de falhas
  • Commodity hardware - nós do cluster podem ser personal computers 
  • Escalabilidade
  • Confiabilidade
  • Formas de acesso: API (Java, C), Command Shell, Web application for browsing data, mount over NFS, WebDAV, REST API, HttpFS


MapReduce (YARN ou NextGen MapReduce) é um modelo de programação para escrita de aplicações que rapidamente processam grandes quantidades de dados em paralelo.

  • Executa sobre dados armazenados, por exemplo, no HDFS, Cassandra e MongoDB
  • Ferramentas como Pig, Hive, Avro utilizam MapReduce em seus algoritmos de processamento