document.write("\x3ca id\x3d\x22cancel\x22 class\x3d\x22cssButton\x22 href\x3d\x22javascript:void(0)\x22 target\x3d\x22\x22 onclick\x3d\x22if (this.className.indexOf(\x26quot;ubtn-disabled\x26quot;) \x3d\x3d -1) {window.close(); return false;} return false;\x22\x3e\x3cdiv class\x3d\x22cssButtonOuter\x22\x3e\x3cdiv class\x3d\x22cssButtonMiddle\x22\x3e\x3cdiv class\x3d\x22cssButtonInner\x22\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3c/a\x3e"); DESCRICAOMapReduce e um framework patenteado, introduzido pelo Google para computacao distribuida em grandes conjuntos de dados e em clusters(grids) de computadores. document.write("\x3ca id\x3d\x22cancel\x22 class\x3d\x22cssButton\x22 href\x3d\x22javascript:void(0)\x22 target\x3d\x22\x22 onclick\x3d\x22if (this.className.indexOf(\x26quot;ubtn-disabled\x26quot;) \x3d\x3d -1) {window.close(); return false;} return false;\x22\x3e\x3cdiv class\x3d\x22cssButtonOuter\x22\x3e\x3cdiv class\x3d\x22cssButtonMiddle\x22\x3e\x3cdiv class\x3d\x22cssButtonInner\x22\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3c/a\x3e"); Inspirado pelas funcoes map() e reduce() comumente usadas na programacao funcional [embora os seus efeitos no ambito do framework MapReduce nao e o mesmo nas suas formas originais Bibliotecas MapReduce tem sido escritas em diversas linguagens de programacao como C + +, C #, Erlang, Java, Python, Ruby, F #, Haskell,Clojure.MapReduce e uma estrutura para processamento de grandes conjuntos de dados sobre determinados tipos de problemas distribuiveis utilizando um grande numero de computadores (nos), referidos coletivamente como um cluster. Processamento computacional pode ocorrer tanto em dados armazenados em um sistema de arquivos (nao estruturadas) ou dentro de um banco de dados (estruturados)."Map" : O no mestre(master) recebe os dados de entrada, divide esses dados em pequenos sub-problemas, e os distribui para nos trabalhadores(workers). Um no trabalhador pode fazer isso de novo, por sua vez, levando a uma estrutura multi-level da arvore de tarefas.A tecnica usada e a Divisao/Conquista amplamente usada em solucoes de problemas top-down, utilizando recursao.Os nos trabalhadores processam as pequenas partes do problema, e passa a resposta de volta ao seu no mestre."Reduce": O no mestre toma entao as respostas para todas as sub-problemas e os combina de modo a obter os dados de saida - a resposta para o problema que originalmente o algoritmo tentava resolver. A vantagem de MapReduce e que ele permite o processamento distribuido da funcao map e das operacoes reduce. Ja que cada operacao de mapeamento e independente da outra, todos os map's podem ser executadas em paralelo - embora na pratica seja limitado pela fonte de dados e / ou o numero de CPUs para esses dados.Da mesma forma, um conjunto de "reduces" podem executar a fase de reducao - tudo o que e necessario e que todas as saidas da operacao de map que compartilhem a mesma chave sejam apresentadas ao mesmo redutor, ao mesmo tempo. Embora este processo muitas vezes possa parecer ineficiente em relacao aos algoritmos que sao mais sequenciais, MapReduce pode ser aplicada a conjuntos de dados significativamente maior do que aqueles algoritmos usados no mercado de servidores - um grande "farm" de servidores pode usar MapReduce para classificar um petabyte de dados em apenas alguns horas.A partes cruciais do algoritmos MapReduce podem ser resumidas em: an input reader(Leitor de Dados de Entrada)a Map function(Funcao de Mapeamento)a partition function(Funcao de Particionamento de Dados)a compare function(Funcao de Comparacao de Dados)a Reduce function(Funcao de Reducao para achar Resultado Final)an output writer(Escritor de Dados)O paralelismo tambem oferece possibilidade de recuperacao de falha parcial de servidores e armazenamento durante a operacao: se um mapeador ou redutor der falha, o trabalho pode ser remarcado - considerando que os dados de entrada ainda estejam disponiveis.MapReduce e util em uma ampla gama de aplicacoes e arquiteturas , incluindo: "grep distribuido, ordenacao distribuida,