Continuando as “aventuras” com o Raspberry Pi e a temática do processamento paralelo e distribuído, sobre o qual escrevi na edição 48 em Março de 2015, decidi desta vez trazer uma outra temática interessante, para quem gosta destas “aventuras”. Desta vez em vez de ser MPICH será Apache Hadoop!
Ao longo deste artigo, em que se prevê que o leitor não disponha de conhecimento prévio sobre Hadoop, irá ser montado um cluster Apache Hadoop, recorrendo a unidades Raspberry Pi, e executados alguns exemplos demonstrativos.
Para quem não conhece o Apache Hadoop, é uma framework, de código aberto (open-source) de armazenamento e processamento distribuído de grandes volumes de dados, em clusters de computadores, usando modelos de programação simples. O Hadoop foi desenhado para ser escalonado de forma a poder “crescer” desde um simples nó até centenas ou mesmo milhares de nós, onde cada um disponibiliza o seu poder de processamento e armazenamento. Contrariamente a outras soluções, o foi também desenhado de forma a detectar e tratar falhas, ao nível da camada de aplicação, em vez de depender do hardware para disponibilizar a alta-disponibilidade necessária.
A biblioteca de software Apache Hadoop é um framework que permite o processamento distribuído de grandes conjuntos de dados através de clusters de computadores que usam modelos de programação simples. É projetado para escalar a partir de um único servidor para milhares de máquinas, cada uma oferecendo computação e de armazenamento local. Em vez de confiar em hardware para proporcionar alta disponibilidade, a biblioteca em si é concebida para detectar e tratar falhas na camada de aplicação, de modo a fornecer um serviço altamente disponível em cima de um cluster de computadores, cada um dos quais pode ser propenso a falhas.
http://hadoop.apache.org/
Correr este tipo de software num cluster com Raspberry Pi, pode parecer “absurdo”, dado o “parco” poder de computação e armazenamento do raspberry. No entanto, e, dependendo do volume de dados, até pode surpreender, uma vez que o consumo de energia deste dispositivo, é bastante baixo, assim como o custo é reduzido e se pensarmos em fazer isto com Raspberry Pi Zero, ainda mais prático se torna! Pelo menos numa lógica de projecto de aprendizagem, ou cluster para testes, por exemplo! No meu caso, inicialmente usei para dados provenientes de sensores montados por mim, para me analisar e gerar informação, com base na informação proveniente dos sensores (a fazerem leituras de 5 em 5 segundos, 24 horas por dia, 7 dias por semana. De qualquer das formas o objectivo deste artigo é apenas apresentar a tecnologia e como a colocar a funcionar!
[...]