Hadoop: A ferramenta que vai facilitar seu processamento de dados
Pouca gente na indústria da informação e em áreas afins ainda não se deparou com os termos Big Data e Hadoop. Apesar da frequência com a qual esses termos são mencionados, muitos profissionais ainda não estão familiarizados com os conceitos envolvidos. Principalmente, em como ambos têm se tornado importantes para as empresas de análise de dados e para os agentes responsáveis por políticas empresariais.
Neste artigo, confira o conceito e aplicabilidade do Hadoop:
Sumário
Onde surgiu o Hadoop?
Desde o surgimento e a disseminação da internet, grandes quantidades de dados têm sido geradas. Particularmente nos últimos anos e principalmente com o surgimento das mídias sociais, ocorreu um fenômeno novo. Quantidades de dados gigantescas são criadas diariamente pelos usuários.
Por serem criados de forma difusa e quase estocástica, a maior parte desses dados não é estruturada. Tais dados, geralmente, contêm informações extremamente úteis para diversos negócios e para a tomada de decisões estratégicas mais eficientes e inteligentes. Por essas características, a necessidade de manipulação e processamento desses dados (Big Data) impulsionou o surgimento de ferramentas e técnicas especiais para esse fim. É nesse ponto em que se insere o Hadoop, ou o Hadoop Cluster.
O que é Hadoop?
O Hadoop é uma implementação de código aberto, mantida pela Apache, do paradigma de programação Map-Reduce. Esse, foi introduzido pelo Google para processar e analisar grandes quantidades de dados. Tal paradigma define uma arquitetura para a realização do processamento de conjuntos de dados em paralelo. De modo que possam ser executados em vários servidores.
A razão para a escalabilidade desse paradigma é a natureza intrinsecamente distribuída do funcionamento da solução. Uma tarefa complexa é dividida em várias tarefas menores. Elas são então executadas em máquinas diferentes e posteriormente combinadas para gerar a solução da tarefa mais complexa. Um exemplo comum de uso do Hadoop é a analise de padrões dos usuários em sites de e-commerce. Isso permite que novos produtos sejam sugeridos ao usuário.
O Hadoop (ou o Hadoop cluster) busca simplificar o processamento em paralelo. Ele permite aos desenvolvedores se ocupar com a forma em que os dados devem ser processados. Isso sem precisar se envolver com problemas relativos ao processamento em paralelo.
Componentes do Apache Hadoop
O framework do Hadoop é composto por dois módulos principais: o módulo de armazenamento e o de processamento.
O primeiro é denominado HDFS (Hadoop Distributed File System) e gerencia o armazenamento de dados entre as máquinas em que o cluster do Hadoop está sendo executado. Já o segundo, é a implementação do algoritmo do Map-Reduce e é responsável por gerir toda a parte de processamento do framework.
O que é HDFS?
O HDFS é um sistema escalável de arquivos distribuídos, cujo esquema é baseado no Google File System. A ideia que norteia essa solução é garantir a escalabilidade do sistema à medida que os dados se tornem grandes demais para serem armazenados em uma única máquina. Além disso, os arquivos no HDFS possuem réplicas, que adicionam confiabilidade e auxiliam o processamento em paralelo.
No HDFS existe o conceito de blocos de dados, que normalmente possuem o tamanho fixo de 64MB. Assim, um arquivo muito grande pode ter blocos armazenados em mais de um servidor. Com este conceito, fica mais fácil calcular as necessidades de armazenamento.
O que é o Hadoop cluster?
Os clusters HDFS são formados por dois tipos de nós, o nó máster denominado Name Node, e os múltiplos nós slaves denominados Data Nodes. É possível ainda haver Name Nodes secundários utilizados como redundância e prevenção a falhas. Enquanto o Name Node armazena informações da distribuição de arquivos e alguns metadados, os Data Nodes armazenam os dados propriamente ditos.
Logo, o Name Node precisa sempre estar disponível. Para garantir tal disponibilidade pode-se inserir no cluster um Name Node secundário, em outro servidor. Com essa opção, em caso de falha do Name Node primário, o nó secundário pode assumir o controle do gerenciamento rapidamente.
Name Nodes e Data Nodes são componentes desenvolvidos para executar independentemente em máquinas com sistemas operacionais heterogêneos. Como o HDFS é desenvolvido em Java, qualquer máquina com suporte a Java pode executar um nó do HDFS.
Map- Reduce e HDFS
O módulo do Map-Reduce é na verdade um framework que define uma solução. Nessa solução, cada tarefa é especificada em termos de funções de mapeamento e redução. Ambas as tarefas rodam em paralelo no cluster, enquanto o sistema de armazenamento necessário para essa funcionalidade é fornecido pelo HDFS.
Os principais componentes do Map-Reduce são o Job Tracker e o Task Tracker.
O Job Tracker é responsável por receber tarefas de Map-Reduce e submetê-las aos Task Trackers. É ele também que deve comunicar-se com o Name Node para conseguir os dados a serem processados. O Job Tracker deve ainda ser reportado pelos Task Tracker a intervalos regulares, especificando que esses estão vivos e efetuando suas tarefas.
Se um Task Tracker não se reportar ao Job Tracker, o nó é considerado morto e suas tarefas são redesignadas para outro Task Tracker. O Job Tracker é um ponto crucial de falhas, pois, caso falhe, não será possível rastrear as tarefas.
Os Task Tracker recebem tarefas do Job Tracker . Para cada tarefa, criam um novo processo JVM, a fim de se certificarem de que uma falha no processo não resulte em uma falha do Task Tracker. Os Task Trackers devem se reportar ao Job Tracker continuamente para que este possa manter o registro de tarefas bem ou mal sucedidas.
Qual a linguagem do Hadoop?
Bom, no universo de desenvolvimento, pode-se afirmar que Java é a linguagem mais comum para quem tem interesse em Hadoop, ainda que exista códigos em C e utilitários de linha de comando, como é o caso dos scripts shell.
O pilar do framework é o Hadoop Common, o qual integra bibliotecas e utilidades para diferentes tipos de Hadoop, como: HDFS, arquivos capazes de armazenar dados em aparelhos de commodities, YARN (exemplo de plataforma para gerenciamento de recursos) e, por último, mas não menos importante, o MapReduce, capaz de processar dados em larga escala.
Que saber como o Hadoop pode ser útil na sua empresa? Conversa com a gente. Podemos te ajudar a criar a solução ideal para a sua organização! Além de tirar suas dúvidas, você pode entender melhor sobre o universo do agilismo e transformação digital para sua empresa, negócio e trajetória pessoal.
No podcast Os Agilistas você confere de perto a percepção dti sobre o agilismo e como aplicá-lo de maneira eficiente um uma equipe. Te esperamos lá! E se você tem interesse em fazer parte de um time que entende de cultura agil e te dá a oportunidade de trabalhar com Hadoop na prática, se inscreva em nossa página de carreiras e venha ser dti!
Data Science
Confira outros artigos
Ciência de dados explicando coisas que acontecem no mundo
Hoje cada ser humano com um dispositivo móvel em mãos produz uma série de dados, gerados em velocidade, volume e variedade nunca vistos antes. A internet das coisas tem se tornado um mar de oportunidades para a ciência de dados nos últimos anos. Isso acontece, porque, através de sensores inteligentes e softwares que transmitem dados […]
Data Science
Dados Geoespaciais: Uma visão geral
Dentre todas as bases de dados em que tive a oportunidade de trabalhar, poucas foram as vezes em que não encontrei dados geoespaciais. Sumário0.1 Mas o que são dados geoespaciais?1 Conceitos Básicos dos dados1.1 Como representar os dados2 Operações Geoespaciais2.1 Operações de relacionamento3 Visualização4 Aplicações de dados georreferenciados4.1 Dados georreferenciais e a pandemia5 Referências e […]
Data Science
Estrutura de dados: o que é e qual a sua importância?
Entenda o que é a importância da estrutura de dados na linguagem da programação O universo da programação possui uma série de fundamentos considerados essenciais para o desenvolvimento dos mais diversos softwares. Considerada um ponto-chave em qualquer projeto, a estrutura de dados tem um papel relevante no trabalho de todos os programadores. Mas você sabe […]
Data Science