Ecossistema Hadoop | Hadoop para Big Data e Engenharia de Dados

Conteúdo

Visão geral

  • Hadoop está entre as ferramentas mais populares na área de engenharia de dados e Big Data
  • Aqui está uma introdução a tudo que você precisa saber sobre o ecossistema Hadoop.

Introdução

Na atualidade, nós temos mais que 4 1 bilhão de usuários da Internet. Em termos de dados brutos, é assim que a imagem se parece:

9.176 Tweets por segundo

1.023 Imagens do Instagram enviadas por segundo

5.036 Chamadas Skype por segundo

86,497 Pesquisas do Google por segundo

86,302 Vídeos do YouTube vistos por segundo

2.957.983 Emails enviados por segundo

e muito mais…

Essa é a quantidade de dados com que estamos lidando no momento: surpreendente! Estima-se que no final de 2020 terá produzido 44 zetabytes de dados. Isso é 44 * 10 ^ 21!

Essa enorme quantidade de dados gerados a uma taxa feroz e em todos os tipos de formatos é o que hoje chamamos de Big Data. Mas não é viável armazenar esses dados em sistemas tradicionais que temos usado por mais de 40 anos. Para lidar com esse big data, precisamos de uma estrutura muito mais complexa que consiste não apenas em um, mas em vários componentes que lidam com diferentes operações.

entendendo-o-hadoop-ecossistema-3138484

Nos referimos a esta estrutura como Hadoop e junto com todos os seus componentes, ligar Ecossistema Hadoop. Mas porque existem tantos componentes dentro deste ecossistema Hadoop, às vezes pode ser realmente desafiador entender e lembrar o que cada componente faz e onde ele se encaixa neste grande mundo.

Então, neste artigo, vamos tentar entender este ecossistema e quebrar seus componentes.

Tabela de conteúdo

  1. Problema com sistemas tradicionais
  2. O que é Hadoop?
  3. Componentes do ecossistema Hadoop
    1. HDFS (Sistema de arquivos distribuído Hadoop)
    2. Mapa pequeno
    3. HILO
    4. HBase
    5. Carne de porco
    6. Colmeia
    7. Sqoop
    8. Canal artificial
    9. Kafka
    10. Funcionário do zoológico
    11. Fagulha – fagulha
  4. Estágios do processamento de Big Data

Problema com sistemas tradicionais

Por sistemas tradicionais, Quero dizer, sistemas como bancos de dados relacionais e data warehouses. As organizações os têm usado no passado 40 anos para armazenar e analisar seus dados. Mas os dados que são gerados hoje não podem ser manipulados por esses bancos de dados pelos seguintes motivos:

  • A maioria dos dados gerados hoje são semiestruturados ou não estruturados. Mas os sistemas tradicionais foram projetados para lidar apenas com dados estruturados com linhas e colunas bem projetadas.
  • Bancos de dados de relacionamento são verticalmente escaláveis, o que significa que você precisa adicionar mais processamento, memória e armazenamento para o mesmo sistema. Isso pode ser muito caro
  • Os dados armazenados hoje estão em diferentes silos. Coletá-los e analisá-los em busca de padrões pode ser uma tarefa muito difícil.

Então, Como lidamos com Big Data? É aí que entra o Hadoop!!

O que é Hadoop?

Os funcionários do Google também enfrentaram os desafios mencionados acima quando queriam classificar páginas na internet.. Eles descobriram que os bancos de dados relacionais são muito caros e inflexíveis. Então, surgiu com sua própria solução inovadora. Eles criaram o Sistema de arquivos do Google (GFS).

GFS é um sistema de arquivos distribuído que supera as desvantagens dos sistemas tradicionais. Funciona em hardware barato e fornece paralelização, escalabilidade e confiabilidade. Isso definiu o trampolim para a evolução de Apache Hadoop.

Apache Hadoop é uma estrutura de código aberto baseada no sistema de arquivos do Google que pode lidar com big data em um ambiente distribuído.. Este ambiente distribuído é formado por um grupo de máquinas trabalhando juntas para dar a impressão de uma única máquina em operação..

Aqui estão algumas das propriedades importantes do Hadoop que você deve conhecer:

  • Hadoop é altamente escalável porque lida com os dados de forma distribuída
  • Comparado com a escala vertical em RDBMS, Ofertas Hadoop escala horizontal
  • Crie e salve réplicas de dados ao fazer isso tolerante a falhas
  • Está econômico ya que todos los nodos del cacho son hardware básico que no es más que máquinas económicas
  • Hadoop usa o conceito de localidade de dados para processar os dados nos nós onde estão armazenados, em vez de mover os dados pela rede, reduzindo assim o tráfego
  • Poderia lidar com qualquer tipo de dados: estruturada, semi-estruturado e não estruturado. Isso é extremamente importante hoje porque a maioria de nossos dados (E-mails, Instagram, Twitter, Dispositivos IoT, etc.) não tem um formato definido.

Agora, vamos dar uma olhada nos componentes do ecossistema Hadoop.

Componentes do ecossistema Hadoop

hadoop-ecosystem-1-6779878

Nesta secção, discutiremos os diferentes componentes do ecossistema Hadoop.

HDFS (Sistema de arquivos distribuído Hadoop)

hdfs-1-8953056

É o componente de armazenamento do Hadoop que armazena dados na forma de arquivos.

Cada arquivo é dividido em blocos de 128 MB (configurável) e os armazena em diferentes máquinas no cluster.

Possui uma arquitetura mestre-escravo com dois componentes principais: Nodo de nombre y Nodo de datos.

  • Nó de nome é o nó principal e há apenas um por cluster. Sua tarefa é saber onde cada bloco que pertence a um arquivo está localizado no cluster.
  • Nó de dados é o nodo esclavo que almacena los bloques de datos y hay más de uno por clúster. Sua tarefa é recuperar os dados quando necessário. Permanece em contato constante com o nó Nome por meio de pulsações.

Mapa pequeno

mapreduce-7061792

Para lidar com Big Data, Hadoop é baseado em Algoritmo MapReduce introduzido pelo Google e facilita a distribuição de uma tarefa e sua execução em paralelo em um cluster. Basicamente, divide uma única tarefa em várias tarefas e as processa em máquinas diferentes.

Em termos simples, trabalha de forma dividir e conquistar e executa processos em máquinas para reduzir o tráfego de rede.

Tem duas fases importantes: Mapa e menos zoom.

hadoop-mapreduce-working-7773273

Fase cartográfica filtro, agrupar e ordenar os dados. Os dados de entrada são divididos em vários divisões. Cada tarefa de mapa funciona em uma fatia de dados paralela em máquinas diferentes e gera um par de valores-chave. A saída desta fase é acionada pelo reduzir o dever de casa e é conhecido como o Fase de redução. Adicione os dados, resume o resultado e o armazena em HDFS.

HILO

hadoop-yarn-1-8796831

FIO o Yet Another Resource Negotiator administra los recursos en el clúster y administra las aplicaciones a través de Hadoop. Permite que os dados armazenados no HDFS sejam processados ​​e executados por vários mecanismos de processamento de dados, como processamento em lote, processamento de fluxo, processamento interativo, processamento gráfico e muito mais. Isso aumenta a eficiência com o uso de YARN.

HBase

apache-hbase-2798645

HBase es una Banco de dados NoSQL basada en columnas. Ele roda em HDFS e pode lidar com qualquer tipo de dados. Permite processamento em tempo real e operações de leitura / gravações aleatórias realizadas nos dados.

Carne de porco

apache-pig-4938034

Porco fue desarrollado para analizar grandes conjuntos de datos y supera la dificultad de escribir mapas y reducir funciones. Consta de dos componentes: Pig Latin e Pig Engine.

Pig Latin é uma linguagem de script semelhante a SQL. Pig Engine é o tempo de execução em que o Pig Latin é executado. Internamente, el código escrito en Pig se convierte en funciones de MapReduce y lo hace muy fácil para los programadores que no dominan Java.

Colmeia

apache-hive-6501025

Colmeia es un sistema de almacenamiento de datos distribuido desarrollado por Facebook. Permite uma leitura fácil, escrever e gerenciar arquivos em HDFS. Ele tem sua própria linguagem de consulta para o propósito conhecido como Linguagem de Consulta Hive (HQL), que é muito semelhante ao SQL. Isso torna muito fácil para os programadores escrever funções MapReduce usando consultas HQL simples..

Sqoop

apache-sqoop-4753001

Muitos aplicativos ainda armazenam dados em bancos de dados relacionais, lo que las convierte en una Fonte de dados muito importante. Portanto, O Sqoop desempenha um papel importante em trazer dados de bancos de dados relacionais para HDFS.

Os comandos escritos no Sqoop são convertidos internamente em tarefas MapReduce executadas no HDFS. Funciona com quase todos os bancos de dados relacionais, como MySQL, Postgres, SQLite, etc. Também pode ser usado para exportar dados de HDFS para RDBMS.

Canal artificial

apache-flume-7540138

Flume es un servicio de código abierto, confiável e disponível que é usado para coletar, adicionar e mover com eficiência grandes quantidades de dados de várias fontes de dados para HDFS. Pode coletar dados em tempo real e em lote. Tem uma arquitetura flexível e é tolerante a falhas com vários mecanismos de recuperação.

Kafka

apache-kafka-4289029

Existem muitos aplicativos que geram dados e um número proporcional de aplicativos que consomem esses dados. Mas conectá-los individualmente é uma tarefa difícil. É aí que entra Kafka. Está entre os aplicativos que geram dados (produtores) e aplicativos que consomem dados (consumidores).

Kafka é distribuído e particionado, replicación y tolerancia a fallas incorporados. Ele pode lidar com dados de streaming e também permite que as empresas analisem dados em tempo real.

Oozie

oozie-1045335

Oozie es un sistema de programación de flujo de trabajo que permite a los usuarios vincular trabajos escritos en varias plataformas como MapReduce, Colmeia, Porco, etc. Com o Oozie, você pode agendar um trabalho com antecedência e pode criar um pipeline de trabalhos individuais para serem executados sequencialmente ou em paralelo para realizar uma tarefa maior.. Por exemplo, você pode usar o Oozie para realizar operações ETL nos dados e, em seguida, salvar a saída em HDFS.

Funcionário do zoológico

apache-zookeeper-2590938

Em um cluster Hadoop, coordenar e sincronizar nós pode ser uma tarefa desafiadora. Por tanto, Funcionário do zoológico es la herramienta perfecta para resolver el problema.

É um serviço de código aberto, distribuído e centralizado para manter as informações de configuração, nomear, fornecer sincronização distribuída e fornecer serviços de grupo em todo o cluster.

Fagulha – fagulha

apache-spark-3617551

Spark é uma estrutura alternativa ao Hadoop construído em Scala, mas suporta vários aplicativos escritos em Java, Pitão, etc. Comparado com MapReduce, fornece processamento na memória que representa um processamento mais rápido. Além do processamento em lote oferecido pelo Hadoop, também pode lidar com processamento em tempo real.

O que mais, Spark tem seu próprio ecossistema:

faísca-ecossistema-3649745

  • Spark Core é o tempo de execução principal para Spark e outras APIs construídas sobre ele
  • API de Spark SQL permite consultar dados estruturados armazenados em DataFrames ou tabelas Hive
  • API de streaming permite que o Spark lide com os dados em tempo real. Pode ser facilmente integrado com uma variedade de fontes de dados, como Flume, Kafka e Twitter.
  • MLlib é uma biblioteca de aprendizado de máquina escalonável que permitirá que você execute tarefas de ciência de dados enquanto aproveita as propriedades do Spark ao mesmo tempo
  • GraphX é um mecanismo de cálculo gráfico que permite aos usuários construir, transforma e raciocina interativamente em dados estruturados em gráficos em escala e vem com uma biblioteca de algoritmos comuns

Estágios do processamento de Big Data

Com tantos componentes no ecossistema Hadoop, pode ser bastante intimidante e difícil de entender o que cada componente faz. Portanto, é mais fácil agrupar alguns dos componentes com base em onde eles estão no estágio de processamento de Big Data.

big-data-processing-stage-1854353

  • Flume, Kafka e Sqoop são usados ​​para ingerir dados de fontes externas no HDFS
  • HDFS é a unidade de armazenamento do Hadoop. Mesmo os dados importados do Hbase são armazenados no HDFS
  • MapReduce e Spark são usados ​​para processar os dados no HDFS e executar várias tarefas
  • Porco, Hive e Spark são usados ​​para analisar os dados.
  • Oozie ajuda a agendar tarefas. Uma vez que funciona com várias plataformas, usado em todas as fases.
  • Zookeeper sincroniza os nós do cluster e também é usado em todos os estágios.

Notas finais

Espero que este artigo tenha sido útil para entender Big Data, por que os sistemas tradicionais não conseguem lidar com isso e quais são os componentes importantes do ecossistema Hadoop.

Eu encorajo você a verificar mais alguns artigos sobre Big Data que podem ser úteis:

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.