O que é o Hadoop?
O Apache Hadoop é uma plataforma de software de código aberto baseada em Java que gerencia o processamento e o armazenamento de dados para aplicações de big data. A plataforma funciona distribuindo jobs de big data e análise do Hadoop entre nós em um cluster de compute, dividindo-os em workloads menores que podem ser executados em paralelo. Alguns dos principais benefícios do Hadoop são escalabilidade, resiliência e flexibilidade. O Hadoop Distributed File System (HDFS) oferece confiabilidade e resiliência ao replicar qualquer nó do cluster para os outros nós do cluster, protegendo contra falhas de hardware ou software. A flexibilidade do Hadoop permite armazenar qualquer formato de dados, incluindo dados estruturados e não estruturados.
Migrating From Hadoop to Data Lakehouse for Dummies
Obtenha insights mais rápidos a um custo menor ao migrar para o lakehouse.
No entanto, as arquiteturas Hadoop apresentam uma série de desafios, principalmente com o passar do tempo. O Hadoop pode ser excessivamente complexo e exigir recursos e expertise significativos para configuração, manutenção e atualizações. Também é demorado e ineficiente devido às leituras e gravações frequentes usadas para realizar cálculos. A viabilidade de longo prazo do Hadoop continua a se degradar à medida que os principais provedores Hadoop começam a se afastar da plataforma, e também porque a necessidade acelerada de digitalizar incentivou muitas empresas a reavaliarem seu relacionamento com o Hadoop. A melhor solução para modernizar sua plataforma de dados é migrar do Hadoop para a Plataforma Databricks Lakehouse. Leia mais sobre os desafios com o Hadoop e a mudança para plataformas de dados modernas em nossa publicação no blog.
O que é a programação Hadoop?
No framework Hadoop, o código é escrito principalmente em Java, mas parte do código nativo é baseada em C. Além disso, os utilitários de linha de comando são normalmente escritos como scripts de shell. Para o Hadoop MapReduce, o Java é usado com mais frequência, mas por meio de um módulo como o Hadoop streaming, os usuários podem usar a linguagem de programação de sua escolha para implementar o mapa e reduzir as funções.
O que é uma base de dados Hadoop?
O Hadoop não é uma solução para armazenamento de dados ou bases de dados relacionais. Em vez disso, seu objetivo como framework de código aberto é processar grandes quantidades de dados simultaneamente em tempo real.
Os dados são armazenados no HDFS, mas são considerados não estruturados e não se qualificam como um banco de dados relacional. Na verdade, com o Hadoop, os dados podem ser armazenados em uma forma não estruturada, semiestruturada ou estruturada. Isso permite maior flexibilidade para as empresas processarem big data de maneiras que atendam às suas necessidades de negócios e muito mais.
Que tipo de base de dados é o Hadoop?
Tecnicamente, o Hadoop não é um tipo de base de dados, como SQL ou RDBMS. Em vez disso, o framework Hadoop oferece aos usuários uma solução de processamento para uma grande variedade de tipos de base de dados.
O Hadoop é um ecossistema de software que permite às empresas lidar com grandes quantidades de dados em pouco tempo. Isso é feito facilitando o uso do processamento paralelo de computadores em grande escala. Várias bases de dados, como o Apache HBase, podem ser dispersas entre clusters de nós de dados contidos em centenas ou milhares de servidores comuns.
Quando o Hadoop foi inventado?
O Apache Hadoop nasceu da necessidade de processar volumes cada vez maiores de big data e fornecer resultados online mais rapidamente à medida que mecanismos de pesquisa como Yahoo e Google se tornavam cada vez mais populares.
Inspirado no MapReduce do Google, um modelo de programação que divide uma aplicação em pequenas frações para ser executada em diferentes nós, Doug Cutting e Mike Cafarella iniciaram o Hadoop em 2002 enquanto trabalhavam no projeto Apache Nutch. De acordo com um artigo do New York Times, o nome Hadoop é uma homenagem ao elefante de brinquedo do filho de Doug.
Alguns anos depois, o Hadoop separou-se do Nutch. O Nutch concentrou-se no elemento rastreador da web, e o Hadoop tornou-se a parte de processamento e computação distribuída. Dois anos depois de Cutting ingressar no Yahoo, o Hadoop foi lançado como um projeto de código aberto em 2008. A Apache Software Foundation (ASF) disponibilizou o Hadoop ao público em novembro de 2012 como Apache Hadoop.
Qual é o impacto do Hadoop?
O Hadoop foi um grande desenvolvimento na área de big data. Na verdade, ele é considerado a base do moderno data lake em nuvem. O Hadoop democratizou o poder computacional e possibilitou que as empresas analisassem e consultassem grandes conjuntos de dados de forma escalável usando software livre e de código aberto e hardware barato e pronto para uso.
Esse foi um desenvolvimento significativo porque ofereceu uma alternativa viável às soluções proprietárias de data warehouse (DW) e formatos de dados fechados que, até então, dominavam o mercado.
Com a introdução do Hadoop, as organizações rapidamente tiveram acesso à capacidade de armazenar e processar grandes quantidades de dados, maior poder computacional, tolerância a falhas, flexibilidade no gerenciamento de dados, custos mais baixos em comparação com data warehouses e maior escalabilidade. Por consequência, o Hadoop abriu caminho para desenvolvimentos futuros em análise de big data, como a introdução do Apache Spark.
Para que serve o Hadoop?
Os possíveis casos de uso do Hadoop são quase infinitos.
Varejo
As grandes organizações têm mais dados de clientes disponíveis do que nunca. Mas, muitas vezes, é difícil fazer conexões entre grandes quantidades de dados aparentemente sem relação. Quando a varejista britânica M&S implantou o Cloudera Enterprise com tecnologia Hadoop, ficaram bem impressionados com os resultados.
A Cloudera usa suporte e serviços baseados no Hadoop para gerenciar e processar dados. Pouco depois de implementar a plataforma baseada na nuvem, a M&S descobriu que era capaz de aproveitar com sucesso seus dados para uma análise preditiva muito melhor.
Isso os levou a um uso mais eficiente do warehouse e evitou rupturas de estoque durante picos "inesperados" de demanda, ganhando uma enorme vantagem sobre a concorrência.
Finanças
O Hadoop talvez seja mais adequado do que qualquer outro para o setor financeiro. No início, o framework de software foi rapidamente fixado para uso primário no manuseio dos algoritmos avançados envolvidos com a modelagem de risco. É exatamente o tipo de gerenciamento de risco que poderia ajudar a evitar o desastre do swap de crédito que levou à recessão de 2008.
Os bancos também perceberam que essa mesma lógica se aplica ao gerenciamento de riscos para portfólios de clientes. Atualmente, é comum que as instituições financeiras implementem o Hadoop para gerenciar melhor a segurança financeira e o desempenho dos ativos de seus clientes. O JPMorgan Chase é apenas um dos muitos gigantes do setor que usam o Hadoop para gerenciar quantidades exponencialmente crescentes de dados de clientes de todo o mundo.
Cuidados de saúde
Seja nacionalizado ou privatizado, prestadores de serviços de saúde de qualquer porte lidam com grandes volumes de dados e informações de clientes. Os frameworks Hadoop permitem que médicos, enfermeiros e cuidadores tenham acesso fácil às informações de que precisam no tempo certo e também facilitam a agregação de dados que fornecem insights acionáveis. Isso pode se aplicar a questões de saúde pública, diagnósticos melhores, tratamentos aprimorados e muito mais.
Instituições acadêmicas e de pesquisa também podem aproveitar um framework Hadoop para impulsionar seus esforços. Tomemos, por exemplo, o campo das doenças genéticas, que inclui o câncer. Temos o genoma humano mapeado e há quase três bilhões de pares de base no total. Em teoria, tudo para curar uma enormidade de doenças agora está ao nosso alcance.
Porém, para identificar relacionamentos complexos, sistemas como o Hadoop serão necessários para processar uma quantidade tão grande de informações.
Segurança e aplicação da lei
O Hadoop também pode ajudar a melhorar a eficácia da segurança local e nacional. Quando se trata de resolver crimes relacionados espalhados por várias regiões, um framework Hadoop pode simplificar o processo de aplicação da lei conectando dois eventos aparentemente isolados. Ao reduzir o tempo para fazer conexões de casos, as agências poderão emitir alertas para outros órgãos e para o público o mais rápido possível.
Em 2013, a Agência de Segurança Nacional dos EUA (NSA) concluiu que o software Hadoop de código aberto era superior às alternativas caras que vinham implementando. Eles agora usam o framework para ajudar na detecção de terrorismo, crimes cibernéticos e outras ameaças.
Como funciona o Hadoop?
O Hadoop é um framework que permite a distribuição de conjuntos de dados gigantes em um cluster de hardware comum. O processamento Hadoop é realizado em paralelo em vários servidores simultaneamente.
Os clientes enviam dados e programas para o Hadoop. Em termos simples, o HDFS (um componente central do Hadoop) lida com os metadados e o sistema de arquivos distribuídos. Em seguida, o Hadoop MapReduce processa e converte os dados de entrada/saída. Por último, o YARN divide as tarefas no cluster.
Com o Hadoop, os clientes podem esperar um uso muito mais eficiente dos recursos de commodities com alta disponibilidade e um ponto de detecção integrado de falhas. Além disso, os clientes podem esperar tempos de resposta rápidos ao realizar consultas com sistemas de negócios conectados.
No geral, o Hadoop fornece uma solução relativamente fácil para organizações que buscam aproveitar ao máximo o big data.
Em que linguagem o Hadoop está escrito?
O framework do Hadoop é construído principalmente em Java. Outras linguagens de programação incluem alguns códigos nativos em C e scripts de shell para linhas de comando. No entanto, os programas Hadoop podem ser escritos em muitas outras linguagens, incluindo Python ou C++. Isso permite que os programadores tenham flexibilidade para trabalhar com as ferramentas com as quais estão mais familiarizados.
Como usar o Hadoop
Conforme mencionamos, o Hadoop cria uma solução fácil para organizações que precisam gerenciar big data. Mas isso não significa que seja sempre simples de usar. Como podemos aprender com os casos de uso acima, a forma como você opta por implementar o framework Hadoop é bastante flexível.
Como seus analistas de negócios, data scientists e desenvolvedores decidem usar o Hadoop dependerá da sua organização e de seus objetivos.
O Hadoop não é para todas as empresas, mas a maioria das organizações deve reavaliar seu relacionamento com o Hadoop. Se sua empresa lida com grandes quantidades de dados como parte de seus processos centrais, o Hadoop fornece uma solução flexível, escalável e acessível para atender às suas necessidades. O que pode ser realizado depende basicamente da imaginação e das habilidades técnicas de você e de sua equipe.
Exemplo de consulta Hadoop
Veja alguns exemplos de como consultar o Hadoop:
Apache Hive
O Apache Hive foi a solução inicial para consultas SQL com o Hadoop. Esse módulo emula o comportamento, a sintaxe e a interface do MySQL para simplificar a programação. É uma ótima opção se você já usa muito as aplicações Java, pois vem com uma API Java integrada e drivers JDBC. O Hive oferece uma solução rápida e direta para desenvolvedores, mas também é bastante limitada, pois o software é bem lento e apresenta recursos somente leitura.
IBM BigSQL
Essa oferta da IBM é um mecanismo SQL de processamento paralelo massivo (MPP) de alto desempenho para o Hadoop. Sua solução de consulta atende às empresas que precisam de facilidade em um ambiente estável e seguro. Além de acessar dados HDFS, ele também pode extrair de RDBMS, bancos de dados NoSQL, WebHDFS e outras fontes de dados.
O que é o ecossistema Hadoop?
O termo Hadoop é um nome geral que pode se referir a qualquer um dos seguintes:
- O ecossistema Hadoop geral, que engloba os módulos centrais e os submódulos relacionados.
- Os principais módulos Hadoop, incluindo Hadoop Distributed File System (HDFS), Yet Another Resource Negotiator (YARN), MapReduce e Hadoop Common (discutidos abaixo). Esses são os blocos de construção básicos de uma implantação típica do Hadoop.
- Submódulos relacionados ao Hadoop incluem Apache Hive, Apache Impala, Apache Pig e Apache Zookeeper e Apache Flume, entre outros. Esses softwares relacionados podem ser usados para personalizar, aprimorar ou estender a funcionalidade principal do Hadoop.
Quais são os principais módulos Hadoop?
- HDFS - Sistema de arquivos distribuídos Hadoop. O HDFS é um sistema baseado em Java que permite que grandes conjuntos de dados sejam armazenados em nós de um cluster de maneira tolerante a falhas.
- YARN - Sigla para Yet Another Resource Negotiator. O YARN é usado para gerenciamento de recursos de cluster, planejamento de tarefas e agendamento de jobs em execução no Hadoop.
- MapReduce - O MapReduce é um modelo de programação e mecanismo de processamento de big data usado no processamento paralelo de grandes conjuntos de dados. Originalmente, o MapReduce era o único mecanismo de execução disponível no Hadoop. Mais tarde, no entanto, o Hadoop adicionou suporte a outros, incluindo Apache Tez e Apache Spark.
- Hadoop Common - O Hadoop Common fornece um conjunto de serviços entre bibliotecas e utilitários para oferecer suporte aos outros módulos Hadoop.
Quais são os componentes do ecossistema Hadoop?
Vários componentes centrais compõem o ecossistema Hadoop.
HDFS
O Hadoop Distributed File System é onde todo o armazenamento de dados começa e termina. Esse componente gerencia grandes conjuntos de dados em vários nós de dados estruturados e não estruturados. Simultaneamente, ele mantém os metadados na forma de arquivos de log. Existem dois componentes secundários do HDFS: o NameNode e o DataNode.
NameNode
O principal Daemon no Hadoop HDFS é o NameNode. Esse componente mantém o espaço de nomes do sistema de arquivos e regula o acesso do cliente a esses arquivos. Também é conhecido como nó mestre e armazena metadados como o número de blocos e seus locais. Consiste principalmente em arquivos e diretórios e realiza execuções do sistema de arquivos como nomear, fechar e abrir arquivos.
DataNode
O segundo componente é o Daemon slave, chamado de DataNode. Esse componente HDFS armazena os dados ou blocos reais conforme executa as funções de leitura e gravação solicitadas pelo cliente. Isso significa que o DataNode também é responsável pela criação, exclusão e replicação de réplicas, conforme instruído pelo NameNode master.
O DataNode consiste em dois arquivos de sistema, um para dados e outro para gravação de metadados do bloco. Quando um aplicativo é iniciado, o handshaking ocorre entre os daemons master e slave para verificar o espaço de nomes e a versão do software. Qualquer incompatibilidade removerá automaticamente o DataNode.
MapReduce
O Hadoop MapReduce é o componente de processamento central do ecossistema Hadoop. Esse software oferece um framework fácil para a escrita de aplicações para lidar com uma grande quantidade de dados estruturados e não estruturados. Isso é obtido principalmente pela facilitação do processamento paralelo de dados em vários nós em hardware comum.
O MapReduce lida com o agendamento de jobs do cliente. As tarefas solicitadas pelo usuário são divididas em tarefas e processos independentes. Em seguida, esses jobs do MapReduce são diferenciados em subtarefas nos clusters e nós em todos os servidores comuns.
Isso é realizado em duas fases: a fase Map e a fase Reduce. Durante a fase Map, o conjunto de dados é convertido em outro conjunto de dados dividido em pares chave/valor. Em seguida, a fase Reduce converte a saída de acordo com o programador através da classe InputFormat.
Os programadores especificam duas funções principais no MapReduce. A função Map é a lógica de negócios para o processamento de dados. A função Reduce produz um resumo e um agregado da saída de dados intermediários da função Map, produzindo a saída final.
YARN
Em termos simples, o Hadoop YARN é uma versão mais nova e muito melhorada do MapReduce. No entanto, essa imagem não é totalmente precisa. Isso ocorre porque o YARN também é usado para agendamento e processamento e execuções de sequências de jobs. Mas o YARN é a camada de gerenciamento de recursos do Hadoop onde cada job é executado nos dados como uma aplicação Java separado.
Atuando como sistema operacional do framework, o YARN permite o processamento em lote e dados f em uma única plataforma. Muito acima dos recursos do MapReduce, o YARN permite que os programadores criem aplicações de streaming interativas e em tempo real.
O YARN permite que programadores executem quantas aplicações forem necessárias no mesmo cluster. Ele fornece uma base segura e estável para o gerenciamento operacional e compartilhamento de recursos do sistema para atingir máxima eficiência e flexibilidade.
Quais são alguns exemplos de softwares populares relacionados ao Hadoop?
Outros pacotes populares que não fazem parte estritamente dos módulos principais do Hadoop, mas que são frequentemente usados em conjunto com eles:
- O Apache Hive é um software de armazenamento de dados que é executado no Hadoop e permite que os usuários trabalhem com dados no HDFS usando HiveQL, uma linguagem de consulta semelhante a SQL.
- O Apache Impala é a base de dados analítica nativa de código aberto para o Apache Hadoop.
- O Apache Pig é uma ferramenta geralmente usada com o Hadoop como uma abstração do MapReduce para analisar grandes conjuntos de dados representados como fluxos de dados. O Pig permite operações como juntar, filtrar, classificar e carregar.
- O Apache Zookeeper é um serviço centralizado que permite o processamento distribuído altamente confiável.
- O Apache Sqoop é uma ferramenta projetada para transferir dados em massa de forma eficiente entre o Apache Hadoop e os repositórios de dados estruturados, como bases de dados relacionais.
- O Apache Oozie é um sistema de agendamento de fluxo de trabalho para gerenciar jobs do Apache Hadoop. Os jobs do Oozie Workflow são gráficos acíclicos direcionados (DAGs) de ações.
Quer saber mais? Leia mais sobre o ecossistema Hadoop.
Como usar o Hadoop para análises
Dependendo das fontes de dados e necessidades organizacionais, existem três maneiras principais de usar o framework Hadoop para análise.
Implemente em seus data centers corporativos
Em geral, essa é uma opção econômica e eficiente em termos de tempo para as empresas que possuem os recursos necessários. Caso contrário, a configuração do equipamento técnico e da equipe de TI necessários pode sobrecarregar os recursos monetários e de pessoal. Essa opção oferece às empresas maior controle sobre a segurança e a privacidade dos dados.
Adote a nuvem
As empresas que desejam uma implementação muito mais rápida, custos iniciais mais baixos e requisitos de manutenção menores tirarão proveito de um serviço baseado em nuvem. Com um provedor de nuvem, análises e dados são executados em hardware comum que existe na nuvem. Esses serviços simplificam o processamento de big data a um preço acessível, mas vêm com certas desvantagens.
Em primeiro lugar, tudo o que está na internet pública pode ser acessado por hackers e outras pessoas mal-intencionadas. Em segundo lugar, as interrupções de serviço na internet e nos provedores de rede podem paralisar seus sistemas de negócios. Para usuários de framework existentes, eles podem envolver algo como a necessidade de migrar do Hadoop para a arquitetura Lakehow.
Provedores on-premises
Quem optar por um melhor tempo de atividade, privacidade e segurança encontrará essas três características em um provedor de Hadoop on-premises. Esses fornecedores oferecem o melhor dos dois mundos. Eles podem simplificar o processo fornecendo todos os equipamentos, software e serviços. Porém, como a infraestrutura é local, você tem todos os benefícios que as grandes corporações obtêm dos data centers.
Quais são os benefícios do Hadoop?
- Escalabilidade - Diferentemente dos sistemas tradicionais que limitam o armazenamento de dados, o Hadoop é escalável à medida que opera em um ambiente distribuído. Isso permitiu que arquitetos de dados construíssem os primeiros data lakes no Hadoop. Saiba mais sobre a história e a evolução dos data lakes.
- Resiliência - O Hadoop Distributed File System (HDFS) é inerentemente resiliente. Os dados armazenados em qualquer nó de um cluster Hadoop também são replicados em outros nós do cluster para se preparar para a possibilidade de falhas de hardware ou software. Esse projeto intencionalmente redundante garante tolerância a falhas. Se um nó cair, há sempre um backup dos dados disponíveis no cluster.
- Flexibilidade - Diferente dos sistemas de gerenciamento de base de dados relacional, ao trabalhar com o Hadoop, você pode armazenar dados em qualquer formato, incluindo semiestruturados ou não estruturados. O Hadoop permite que as empresas acessem facilmente novas fontes de dados e usem diferentes tipos de dados.
Quais são os desafios das arquiteturas Hadoop?
- Complexidade - O Hadoop é uma estrutura baseada em Java de baixo nível que pode ser excessivamente complexa e difícil para os usuários finais. As arquiteturas Hadoop também podem exigir conhecimento e recursos significativos para configuração, manutenção e atualizações.
- Desempenho - O Hadoop usa leituras e gravações frequentes em disco para realizar cálculos, o que é demorado e ineficiente em comparação com estruturas que visam armazenar e processar dados na memória o máximo possível, como o Apache Spark.
- Viabilidade a longo prazo - Em 2019, o mundo viu um enorme desdobramento dentro da esfera do Hadoop. O Google, que apoiou a criação do Apache Hadoop em um artigo seminal de 2004 sobre o MapReduce, parou de usar o MapReduce, de acordo com um tuíte de Urs Hölzle, vice-presidente sênior de infraestrutura técnica do Google. Houve também algumas fusões e aquisições de alto perfil no universo do Hadoop. Além disso, em 2020, um dos principais provedores do Hadoop mudou seu conjunto de produtos para deixar de ser centrado no Hadoop, por ser agora considerado "mais uma filosofia do que uma tecnologia". Por fim, 2021 tem sido um ano de mudanças interessantes. Em abril de 2021, a Apache Software Foundation anunciou a retirada de dez projetos do ecossistema Hadoop. Depois, em junho de 2021, a Cloudera concorda em torná-los privados. O impacto dessa decisão nos usuários do Hadoop ainda está para ser visto. As preocupações crescentes e a necessidade de acelerar a digitalização levaram muitas empresas a reavaliar seu relacionamento com o Hadoop.
Quais empresas usam o Hadoop?
A adoção do Hadoop está se tornando o padrão para empresas multinacionais bem-sucedidas. Veja a seguir uma lista de empresas que usam o Hadoop hoje:
- Adobe – Os provedores de software e serviços usam o Apache Hadoop e HBase para armazenamento de dados e outros serviços.
- eBay - Usa a estrutura para otimização e pesquisa de mecanismos de busca.
- A9 - Subsidiária da Amazon responsável por tecnologias relacionadas a mecanismos de busca e publicidade relacionada a buscas.
- LinkedIn - Como um dos mais populares sites de redes sociais e profissionais, a empresa usa muitos módulos Apache, incluindo Hadoop, Hive, Kafka, Avro e DataFu.
- Spotify - A gigante sueca de streaming de música usou o framework Hadoop para análises e relatórios, bem como geração de conteúdo e recomendações de audição.
- Facebook - O gigante das mídias sociais mantém o maior cluster Hadoop do mundo, com um conjunto de dados que cresce cerca de meio PB por dia.
- InMobi - A plataforma de marketing móvel usa tarefas HDFS e Apache Pig/MRUnit envolvendo análise, data Science e machine learning.
Quanto custa o Hadoop?
O framework Hadoop é uma aplicação baseada em Java de código aberto. Isso significa que, ao contrário de outras alternativas de big data, ele é gratuito. É claro que o custo do software básico necessário depende da escala.
Em relação a serviços que implementam frameworks Hadoop, há várias opções de preços:
- Por nó (mais comum)
- Por TB
- Produto Freemium com ou sem suporte técnico somente por assinatura
- Pacote completo, incluindo todo o hardware e o software
- Serviço baseado em nuvem com suas próprias opções de preços divididos. Basicamente, você paga pelo que precisa ou conforme o uso
Leia mais sobre os desafios com o Hadoop e a mudança para plataformas de dados modernas em nossa publicação no blog.