As bases do Big Data​: Armazenamento e Computação Distribuída

Imagem 01

Com a ascensão de uma cultura Data Driven, as corporações e organizações tendem a cada vez mais armazenar e processar toneladas de dados. Esse comportamento pode produzir alguns desafios específicos, como por exemplo:

  • A ingestão de novos dados é demorada, produzindo dificuldades na leitura dos dados já estabelecidos
  • Apesar de usar servidores com grande capacidade computacional, é cada vez mais difícil e demorado processar os dados e obter insights
  • As janelas de Backup são cada vez mais restritas e tendem a encavalar as cargas
  • O processo de aquisição de um novo servidor mais poderoso e o processo de migração dos dados é altamente caro e muitas vezes inviável

Uma maneira de contornar estes problemas é a utilização de tecnologias para armazenamento e processamento de dados distribuído, o que foi resolvido com o advento do Apache Hadoop.

Apache Hadoop

O Hadoop é um sistema para armazenamento e processamento de grandes conjuntos de dados, e foi criado no ano de 2005 por Doug Cutting e Mike Cafarella. O nome e ícone do Hadoop são baseados no elefante de pelúcia do filho de Doug, na época com dois anos.

A grande vantagem do Hadoop é utilizar múltiplos servidores que trabalham em conjunto para armazenar e processar bases de dados em vez de um só como é comum nos bancos de dados tradicionais.

De uma maneira resumida um cluster de servidores Hadoop é composta de um servidor chamado NameNode e diversos servidores chamados DataNodes. Essas máquinas que compõem o cluster como DataNodes tem a característica de não necessariamente necessitarem de serem máquinas poderosas e com arquitetura específica de servidores como os quais estamos acostumados à encontrar, o que barateia em muito a composição do cluster Hadoop.

Graças à um componente chamado YARN, o Hadoop é preparado para comissionar facilmente e rapidamente novos DataNodes, o que garante escalabilidade ao cluster ao mesmo tempo que é altamente tolerante à falhas, monitorando continuamente o cluster e descomissionando DataNodes com falhas.

Quando um arquivo é salvo dentro de um cluster Hadoop, o NameNode que atua como um indexador de onde cada arquivo se encontra, armazena este novo arquivo por padrão em 3 DataNodes, o que também ajuda a compor o aspecto de alta tolerância a falhas e perca de dados. Este mecanismo de armazenamento do Hadoop é conhecido como Hadoop Distribucted File System ou HDFS.

No campo do processamento, o Hadoop MapReduce é um componente que permite processar dados utilizando de forma coordenada o armazenamento e processamento distribuído entre os diversos DataNodes do cluster. O MapReduce é capaz de processar petabytes de dados utilizando um paradigma de computação criado originalmente dentro do Google, e que é baseado em dois passos:

  • Map: filtra e ordena os conjuntos de dados convertendo-os em conjuntos de chaves-valor
  • Reduce: reduz as chaves-valor ao efetuar algum tipo agregação nos valores

É possível escrever programas MapReduce utilizando Java, Ruby, Python e C++. Observe abaixo um exemplo de como o mecanismo de MapReduce executa a contagem de palavras:

O mecanismo de MapReduce reinou absoluto durante anos no processamento de Big Data, até que em 2009 foi criado o Apache Spark, que acabou levando ao desuso do MapReduce.

Apache Spark

O Spark é um framework que pode ser executado junto ao Hadoop de modo à estender o modelo de processamento do MapReduce entregando uma performance até 100 vezes superior, ao mesmo tempo em que facilita bastante o trabalho de desenvolvimento de aplicações para processamento de alto volume de dados ao prover uma biblioteca mais completa e madura que o MapReduce, podendo ainda suportar programas escritos em Java, Scala, Python e R.

O Spark ainda é capaz de conectar em mais fontes de dados que o Hadoop HDFS, podendo realizar consultar e processamento de grandes conjuntos de dados em bancos de dados tradicionais como o SAP HANA, Oracle e PostgreSQL, e outros bancos de dados de armazenamento específico como o MongoDB e o ElasticSearch.

O Spark também oferece componentes para outras áreas além do processamento de alto volume de dados:

  • Spark SQL: Permite utilizar SQL para processamento e consulta de conjuntos de dados no Spark
  • Spark Streaming: Permite executar cargas de ingestão e processamento de dados de Streamings, permitindo execução de fluxos de Real-Time Big Data Analytics. Para mais informações sobre esse assunto, consulte o artigo prévio: Real-Time Big Data Analytics como uma vantagem competitiva de negócio
  • Spark MLLib: Conjunto de bibliotecas para treino e execução de modelos de Machine Learning
  • Spark GraphX: Permite o processamento de dados em grafos

Outras aplicações que trabalham junto ao Apache Hadoop

Uma série de outras aplicações e frameworks foram desenvolvidas para trabalharem junto ao Hadoop, além do Spark:

  • Apache Hive: Permite executar um conjunto de arquivos do Hadoop HDFS como um banco SQL, permitindo as conhecidas funções de SELECT, INSERT, DELETE e UPDATE
  • Apache Hbase: Parecido com o Hive, o Hbase permite execução de arquivos como um banco NoSQL.
  • Apache Impala: Permite execução de consultas em dados no Hadoop HDFS e também no Hbase
  • Apache Sqoop: Executa cargas de ingestão de dados entre sistemas de arquivos tradicionais ou bancos de dados relacionais e o Hadoop HDFS
  • Apache Flume: É um sistema distribuído para coletar, agregar e ingerir grandes quantidades de dados de log. Possui uma arquitetura simples e flexível, baseada no fluxo de dados de streaming.

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Você pode gostar também

SAP AI Foundation: A Nova Era da Inteligência Artificial Empresarial

O que é o SAP Sustainability Footprint Management (SFM)?

Você sabe como funciona a migração do SAP BW para o SAP Datasphere?

O que é o SAP Greentoken?

A Sustentabilidade como Pilar Estratégico nas Empresas: A Importância do ESG e as Soluções SAP

Transforme o planejamento da sua empresa com o poder combinado do SAP Analytics Cloud e SAP IBP

Abrir bate-papo
Kinesis IT
Olá 👋
Podemos ajudá-lo?