# Apache Hadoop

Plataforma open-source de construção de soluções confiáveis, escaláveis e distribuídas. Possui os seguintes sub-projetos"

### Hadoop Common:

- utilitários comuns a todos os subprojetos

### Chukwa

- sistema de gerenciamento de grandes bases de dados

### HBase

- BD escalável e distribuído voltado para tabelas grandes
- Promete ser super eficiente em acessos aleatórios e em tempo real em grandes bases de dados
- Billions of rows X millions of columns
- Open-source, distributed, column-oriented
- Integração com MapReduce

### HDFS

- FS distribuído de alto throughput

### Hive

- infraestrutura de data warehouse

### MapReduce

- Na verdade é um conceito lógico e não uma tecnologia
- framework para processamento distribuído em grandes conjuntos de dados
- usuário implementa as funções Map() e Reduce()
- Lib cuida de paralelização, tolerância a falhas, distribuição de dados e balanceamento de carga
- Map(): processa par de KeyValue para gerar KeyValues intermediários, exemplo:

- Map("controle.txt","brasil"): procura a palavra "brasil" no arquivo "controle.txt"
- processa o arquivo e devolve pares de [palavra, qtd], p.e. ["brasil", 2]

- Reduce(): Agrupa todos os valores associados a chave buscada

- soma todos os valores da mesma chave
- devolve par de [palavra, qtd total], p.e. ["brasil", (2 5 4)] => ["brasil", 11]

### Pig

- linguagem de alto-nível para computação paralela

### ZooKeeper

- sistema de gerenciamento de aplicações distribuídas

Fontes:
  Welcome to Apache Hadoop!, 2010, hadoop.apache.org
  MapReduce Lecture, John R. Gilbert, www.cs.ucsb.edu