Diretamente da boca do cavalo :
Hadoop is a framework for running applications on large clusters built of commodity hardware. The Hadoop framework transparently provides applications both reliability and data motion. Hadoop implements a computational paradigm named Map/Reduce, where the application is divided into many small fragments of work, each of which may be executed or reexecuted on any node in the cluster. In addition, it provides a distributed file system (HDFS) that stores data on the compute nodes, providing very high aggregate bandwidth across the cluster. Both Map/Reduce and the distributed file system are designed so that node failures are automatically handled by the framework.
Mapear / reduzir é um paradigma de programação popularizado pelo Google onde uma tarefa é dividida em pequenas porções e distribuídas para um grande número de nós para processamento (mapa), e os resultados são então resumidos na resposta final (reduzir). Google e Yahoo usam isso para sua tecnologia de mecanismo de busca, entre outras coisas.
O Hadoop é uma estrutura genérica para implementar esse tipo de esquema de processamento. Quanto ao motivo, é porque ele fornece recursos interessantes, como tolerância a falhas, e permite reunir praticamente qualquer tipo de hardware para fazer o processamento. Ele também é muito bem dimensionado, desde que seu problema se encaixe no paradigma.
Você pode ler tudo sobre isso no site .
Quanto a alguns exemplos, Paul deu alguns, mas aqui estão mais alguns que você pode fazer que não são tão centrados na web:
- Renderizando um filme em 3D. A etapa "mapeamento" distribui a geometria de cada quadro para um nó diferente, os nós o renderizam e os quadros renderizados são recombinados na etapa "reduzir".
- Calculando a energia em um sistema em um modelo molecular. Cada quadro de uma trajetória do sistema é distribuído para um nó na etapa "mapeamento". Os nós calculam a energia de cada quadro,
e, em seguida, os resultados são resumidos na etapa "reduzir".
Essencialmente, o modelo funciona muito bem para um problema que pode ser decomposto em cálculos discretos semelhantes que são completamente independentes e podem ser recombinados para produzir um resultado final.