MapReduce
MapReduce é uma API de programação que admite o processamento de dados massivos em um algoritmo paralelo e distribuído em que a Google foi pioneira. É implementada no projeto Apache Hadoop, utilizando todo o hardware disponível no cluster.
Isto torna os problemas de paralelização mais fáceis, apresentando aos programadores uma API estruturada para implementar funcionalidades de computação paralela. Grandes corporações como Amazon e Facebook, utilizam a implementação em larga escala o Hadoop, em aplicações Big Data.
Um bom exemplo seria a evolução da capacidade de armazenamento dos discos rígidos que, nos últimos anos aumentaram consideravelmente, mas a velocidade de leitura e escrita não evoluíram tanto assim. Antigamente a leitura de todo o disco rígido demorava cinco minutos e hoje em dia demora cerca de duas horas. Sendo assim, um longo período para ler e escrever todos os dados. A solução mais trivial para resolver esse problema seria, em teoria, escrever e ler os dados em paralelo, fazendo o uso de vários discos. Porém, nos deparamos com dois problemas comuns. Se há 100 vezes mais discos rígidos, por exemplo, a chance de se encontrar falha e gerar perda nos dados em um deles, é 100 vezes maior. Uma forma de resolver esse problema, utiliza-se a réplica de dados, onde são realizadas cópias de segurança dessas informações em diferentes discos. Outro problema seria na hora da realização de diversas etapas de análise que precisam associar essas informações difundidas em diferentes discos. No MapReduce, esse problema não ocasiona aborrecimento, pois assim que o processamento é executado por uma associação entre chaves e valores (Keys and values), independente do disco em que se encontra.
Um tema no qual a maior parte do Map Reduce está fundamentado e que vem ganhando destaque é o Big Data. Para ele, mais importante que a pesquisa massiva de dados é o processamento desses dados. Os benefícios que as empresas ganham ao utilizá-lo são imensuráveis. O