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