Hadoop é uma solução open-source de processamento de dados que foi desenvolvida pela Apache Software Foundation e tem como principal objetivo o processamento de dados com alto volume e variedade por meio de computação de larga escala. Com a chegada do Hadoop, o processamento massivo de dados começou a ser realizado de forma significativa por mais pessoas e empresas.
Hadoop pode ser uma ótima alternativa para tratar, processar e agrupar grandes volumes de dados estruturados, semi-estruturados e não-estruturados. A implementação oferece um meio relativamente acessível que permite extrair informações e fazer previsões a partir da compreensão dos dados da empresa, ao invés de obter informações apenas de bancos de dados transacionais ou data warehouses. Entretanto, alguns conjuntos de dados são realmente grandes e gerados em alta velocidade, para que o Hadoop possa tratá-los. Nestes casos, pode-se implementar soluções customizadas de MapReduce.
O Hadoop utiliza clusters para armazenar os dados, através de nodes que oferecem alta capacidade de computação quando combinados em distribuição paralela. Este tipo de solução reduz dramaticamente os custos envolvidos no armazenamento de Big Data.
O Hadoop possui basicamente 2 componentes:
– Framework de processamento distribuído – Hadoop utiliza MapReduce como framework de processamento distribuído, que é um poderoso framework onde as tarefas de processamento são distribuídas através de clusters de nodes para que largos volumes de dados possam ser processados rapidamente.
– File system distribuído – Hadoop utiliza Hadoop Distributed File System (HDFS) como file system distribuído.
A carga de aplicações que executam sobre o Hadoop é dividida entre os nodes do Hadoop cluster e o output é armazenado no HDFS. Um Hadoop cluster pode ser composto de milhares de nodes. Para manter o custo de processamento de I/O (input/output) baixo, os processos de Hadoop MapReduce são realizados bem próximos dos dados quanto possível. Isso significa que os processos de redução de dados são posicionados próximos aos processos de mapeamento. Este design facilita o compartilhamento de recursos computacionais em processamentos de Big Data.
Hadoop também suporta organização hierárquica. Os nodes são classificados como masters e slaves. O serviço master (também chamado JobTracker) é responsável por controlar diversos serviços slaves. Serviços slaves (também chamados TaskTrackers) são distribuídos, um para cada node. O JobTracker controla os TaskTrackers e delega tarefas de Hadoop MapReduce para eles. Na versão mais nova do Hadoop (versão 2), um gerenciador de recursos chamado YARN foi adicionado e funciona como um sistema integrado que realiza funções de agendamento, além do gerenciamento de recursos.
Hadoop processa dados em batch. Consequentemente, ele não deve ser usado para processar dados em tempo real, de bancos de dados transacionais. Mas o Hadoop pode resolver muitos outros tipos de problemas relacionados ao Big Data.
David Matos
Muito bom os seu posts cara já me ajudou muito a entender um pouco esse mundo, continue assim..
Olá Alexandre. Muito obrigado por acompanhar o blog. Não deixe de assinar a newsletter, tenho novidades vindo por aí. Acesse também a página no Facebook: http://www.facebook.com/cienciaedados. Abs. David
Adorando o blog, os assuntos abordados são ótimos e os textos estão muito bem escritos.
Valeu Larissa. Muito obrigado.
Muito legal seu post! Adorei