Hadoop, Lucene e HPC no Azure

Embora a maioria dos aplicativos que sobem no Azure hoje não precisem de MapReduce, é bom saber que podemos ter em mãos a qualquer momento a possibilidade de distribuir trabalho para várias máquinas que irão processar em paralelo alguma computação do nosso interesse (como cálculos de risco, buscas de texto, etc.).

O MapReduce no Azure pode ser feito na mão, via filas e Tables, ou através de frameworks existentes (aqui sugiro a leitura do artigo em https://www.developerzen.com/2009/05/06/introduction-to-mapreduce-for-net-developers/ ).

Para quem gosta de frameworks prontos, tenho uma boa notícia: Mario Kosmikas está escrevendo posts sobre como usar o Haddop no Azure. Veja aqui.

Para quem não conhece, o Hadoop é um framework da Apache que implementa o MapReduce e é muito usado pela comunidade que faz hoje processamento distribuído. Kosmikas mostra no seu post o passo a passo da sua instalação no Azure.

Outro software livre interessante e utilizável hoje no Azure é o Lucene. Com ele, você pode coletar uma massa de dados grande e usá-lo para indexação e busca utilizando um array de máquinas no Azure. Para quem precisar, vá ao site https://code.msdn.microsoft.com/AzureDirectory , leia a documentação e baixe o código.

Por fim, vale a pena também dar uma olhada em dois textos (1 e 2) que mostram como estender a infraestrutura do Windows HPC com nós de computação do Azure.

O Windows HPC permite criar uma array de computadores para a distribuição de Jobs que trabalham em paralelo. Ele usa um nó mestre (on-premises) que irá distribuir as tarefas para os nós trabalhadores. O que estes artigos mostram é o como podemos estender os nós de computação com o Azure. Isto é interessante porque permite a diminuição do nosso investimento em computadores locais para usar os da nuvem.

image

Como disse no início, nem todo software que sobe no Azure precisa de paralelismo intenso, mas é bom saber que já existe muita coisa pronta para quando precisarmos.

Abraços