Semantix: Iniciando com Big Data Confira no nosso blog!
Escolha uma Página
Iniciando com Big Data
13 de setembro de 2018

Para quem está chegando agora ou ainda não teve oportunidade de conhecer as motivações e ferramentas mais comuns utilizadas neste mundo de big data, vou tentar passar aqui uma visão geral. A verdade é que são tantas ferramentas que fica até difícil distingui-las de pokemons 🙂 É sério!! Depois de ler essa matéria, faça o teste Pokemon ou Big Data.

Big Data é um termo bastante utilizado atualmente e ligado diretamente ao volume de dados a ser processado e analisado (algumas definições podem ser vistas nesse outro artigo O que é Big Data). Para o processamento e análise destes dados recorremos à ciência de dados.

Data Science

Data Science (Ciência de Dados) é uma prática que envolve métodos científicos, processos e sistemas para extrair conhecimento ou insights tanto de dados estruturados como de não-estruturados. É um conceito que unifica estatística, análise de dados e métodos relacionados com a finalidade de entender e analisar fenômenos através de seus dados. Este conceito emprega técnicas e teorias de diversas áreas de conhecimento da matemática, estatística, e ciência da computação (mais especificamente de subdomínios de aprendizado de máquina, classificação, clusterização, mineração de dados, e visualização).

Além de conhecimentos matemáticos, data science também requer conhecimentos em ferramentas para análise de dados e também programação. Entre as ferramentas para realizar estas análises estão o famoso SPSS (adquirida pela IBM em 2009), R/RStudio, Jupyter e Zeppelin, entre outras. No campo da programação, está a conhecida linguagem Java, Scala e Clojure, que utilizam a JVM para sua execução. A linguagem Python também é muito útil pois é flexível e permite agilidade no desenvolvimento. As linguagens java, scala e python podem ser utilizadas com o Spark, um framework para processamento de dados em grande escala. Muitas das ferramentas podem ser utilizadas gratuitamente, e são mais facilmente instaladas em sistemas operacionais linux.

Após a análise é necessário demonstrar resultados através de relatórios, gráficos, dashboards e/ou modelos gerados. Com estas simples explicações podemos perceber que data science requer uma certa bagagem de conhecimentos diversos.

Ao tratar com big data já surgem dois desafios: capacidade de armazenamento e velocidade de processamento. Ambos nos conduzem a uma limitação computacional em que a velocidade de I/O (gravação e leitura) de discos não acompanhou a evolução dos processadores, e mesmo para o melhor processador é difícil dar vazão a grandes quantidades de informação sozinho. Estes dois desafios podem ser resolvidos utilizando-se uma arquitetura onde os dados estão distribuídos e próximos a unidades de processamento (a leitura de um grande arquivo a partir de uma máquina leva muito tempo comparando-se com a leitura deste mesmo arquivo num ambiente distribuído ao ser lido por diversas máquinas).

A tecnologia compatível com a arquitetura citada é o HDFS, que é um filesystem distribuído, inspirado no GFS (Google File System), e executado em nodes utilizando hardware commodity. Ele não foi criado para ser transacional, ou seja, receber muitas requisições de leitura e escrita, mas para realizar única gravação e diversas leituras. O objetivo é que os nodes com HDFS sejam utilizados como RAIN (Redundant Array of Independent Nodes) para armazenar dados a serem processados por diversos componentes do ecossistema HADOOP.

Hadoop

Hadoop é um projeto open-source da Apache que possibilita o processamento distribuído de grandes volumes de dados por um conjunto de máquinas (cluster) usando modelos de programação simples. O projeto é desenhado de forma a ser escalável desde poucos servidores até milhares de máquinas, onde cada uma oferece processamento e armazenamento de dados. Ele contém os seguintes módulos:

  • Hadoop Common: o componente base que suporta as demais ferramentas.
  • HDFS (Hadoop Distributed File System): sistema de arquivos distribuídos, escalável, tolerante a falhas e de baixo custo.
  • Hadoop YARN: framework para agendamento de jobs e gerenciamento de recursos no cluster.
  • Hadoop MapReduce: sistema baseado no Yarn para processamento paralelo.

As distribuições hadoop disponíveis são Cloudera (que possui o módulo de segurança mais maduro), Hortonworks e MapR, onde as ferramentas mais comuns do ecossistema estão representadas na imagem abaixo:

Cada distribuição tem alguns módulos específicos como o Cloudera Manager, HUE, Impala e Sentry na distribuição Cloudera, e o Ambari, Tez, Knox e Ranger na distribuição Hortonworks.

O gráfico acima representa a distribuição Cloudera, com suas ferramentas e finalidades, e nele podemos ver o YARN (Yet Another Resource Manager) que gerencia os recursos do cluster, recebendo requisições e submetendo-as aos recursos disponíveis. Outra ferramenta que atua como base para os demais serviços é o Sentry, módulo de segurança que funciona com o Kerberos (base da segurança em um cluster hadoop).

Entre os serviços de integração, existem:

  • Sqoop– ferramenta para transferência (entrada e saída) de informações entre o hadoop e fontes estruturadas, como bases de dados relacionais;
  • Flume– serviço distribuído, com arquitetura flexível baseada em streaming, para coleta, agregação e movimentação de grandes quantidades de dados;
  • Kafka– plataforma distribuída de streamings, que funciona como um checkpoint de dados, para montagem de pipelines entre sistemas ou aplicações.

Quando falamos em armazenamento das informações no stack Cloudera, temos:

  • HDFS – o próprio filesystem;
  • HBase – a base de dados não-relacional open source distribuída que funciona em conjunto com o HDFS, baseada no Bigtable do Google, e indicada para grandes volumes de informações;
  • Kudu – a base de dados relacional complementar ao HDFS e ao HBase que permite rápido acesso aos dados, reduzindo consideravelmente a latência de ferramentas como o Spark e Impala.

Finalmente, para processamento e análise de dados, temos ferramentas como:

  • Hive – ferramenta com uma camada de abstração SQL que facilita leitura, escrita e o gerenciamento de dados em grandes datasets no HDFS;
  • MapReduce – framework que opera sobre pares (chave/valor) para processar grandes quantidades de dados em grandes clusters, dividindo os dados em partes que são processadas paralelamente;
  • Impala – database analítica que consulta dados armazenados no HDFS e HBase, que utiliza os mesmos metadados, sintaxe SQL e driver ODBC utilizado para o Hive.
  • Solr – ferramenta tolerante a falhas, escalável e confiável, que permite indexação de textos e buscas avançadas, oferecendo ainda APIs baseadas em REST que permite integração com praticamente qualquer linguagem de programação;
  • Spark – framework para desenvolvimento de programas (em scala ou python) para processamento paralelo distribuído em larga escala que é formado por diversos módulos (Core, SQL, Streaming, MLlib, GraphX).

Todas essas técnicas, tecnologias e ferramentas podem ser amplamente utilizadas em diversos mercados (financeiro, telecom, seguros, governo, comércio e serviços) suportando diversos tipos de aplicações como identificação de fraudes, classificações de clientes, predições de consumo, buscas textuais e outras análises.

Por: Marcos Takeshi – Engenheiro de Dados da Semantix

0 comentários

Trackbacks/Pingbacks

  1. Cultura Data Driven: os dados como ativos das companhias - Semantix - […] da transformação digital, o Big Data – grande conjunto de dados armazenados – é uma das tecnologias emergentes com capacidade […]
  2. Como Big Data está mudando o setor bancário e financeiro - […] Big Data não está apenas sendo usado por necessidade e proteção contínua dos dados do cliente, mas […]

Enviar um comentário

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