Aula BigData
Aula BigData
Aula BigData
Objetivo: Mais importante que armazenar dados é como extrair valor dos
mesmos!
2012
Source: How Does Big Data Make the World Go Round? (IBM) http://www.ibmbigdatahub.com/blog/how-does-big-data-make-world-go-round
https://www.visualcapitalist.com/what-happens-in-an-internet-minute-in-2019/
Big
Data
“Dado que é massivo em volume, em relação à demanda de processamento,
com uma variedade de dados estruturados e não estruturados contendo
diferentes padrões de dados para serem analisados.”
Akhtar, Syed Muhammad Fahad. Big Data Architect’s Handbook: A guide to building
proficiency in tools and systems used by leading big data experts. Packt Publishing Ltd,
2018.
• Fatos
• Abordagens tradicionais de armazenamento e processamento NÃO FUNCIONAM devido
ao enorme volume de dados
• Usando a abordagem tradicional, a análise dos dados não seria concluída em um
prazo específico
• Dark Data informações armazenadas mas não utilizadas pela organização
• Dados podem conter informações valiosas precisam ser eficientemente
armazenados e
acessíveis
• Informações valiosas podem ser usadas para análise preditiva
O que é 1 Bit
8 Bits
Dígito binário
1 Byte
Big?
• 5 Exabytes: Todas as palavras já faladas por seres 1,024 Bytes 1 KB (Kilobyte)
humanos (em texto) Roy Williams (Caltech, 1993) 1,024 KB 1 MB (Megabyte)
Buyya, Rajkumar, Rodrigo N. Calheiros, and Amir Vahid Dastjerdi, eds. Big data: principles and paradigms. Morgan Kaufmann,
Volume
• Passado: as empresas usavam apenas dados criados por seus funcionários
• Agora: dados gerados por dispositivos (IoT) e clientes
• Exemplos
• Facebook
• 2 bilhões de usuários ativos
• 600 TB de dados são ingeridos no banco de dados do Facebook
• Avião a jato
• São gerados 10 TB de dados para cada hora de vôo (escala de petabytes gerados por dia
para todos os
vôos)
Velocidade
• Taxa na qual os dados estão sendo gerados - com que rapidez os dados estão
chegando
• Exemplos
• A bolsa de valores de Nova York captura 1 TB de dados durante cada sessão de negociação
• 500 horas de vídeo estão sendo enviadas para o YouTube a cada minuto (2019)
• Os carros modernos têm quase 100 sensores para monitorar cada item, desde a pressão do
combustível e dos pneus até os obstáculos ao redor
• Quase 200 milhões de e-mails são enviados a cada minuto
Baseado em um modelo de Não possui um modelo de Tipo de dados estruturados Dados sobre dados
dados pré-definido (formato dados pré-definido ou não com menos restrições (em
tabular com relações entre está organizado de maneira comparação com bancos de
linhas e colunas) pré-definida dados)
Fácil de analisar com Mais difícil de analisar Contém tags ou outros Fornece informações
ferramentas tradicionais usando ferramentas marcadores para separar adicionais sobre um
tradicionais usadas para elementos e impor hierarquias conjunto específico de
dados estruturados de registros e campos nos dados
dados
Exemplos: arquivos do Excel Exemplos: arquivos de Exemplos: JSON e XML Exemplo: data e local onde
ou bancos de dados SQL áudio, vídeo ou bancos de as fotos são tiradas
dados NOSQL
• Características
• Alta disponibilidade - os dados devem estar disponíveis o tempo todo, mesmo quando
ocorrem falhas de hardware ou software
• Pool de recursos - vários computadores são conectados um ao outro para atuar como um
único computador
• Escalabilidade fácil - capacidade de armazenamento adicional ou poder computacional podem
ser facilmente adicionados com novas máquinas ao grupo (scale out em vez de scale up)
• Processamento paralelo - cada nó executa uma tarefa em paralelo
• Hardware de commodities - usa hardware usando componentes de prateleira com capacidade
razoável de armazenamento e computação
• Muito mais barato comparado a um servidor de processamento dedicado com hardware poderoso
Cluster Computing
https://www.grotto-networking.com/BBNetVirtualizationDataCenter.html https://www.ibmbigdatahub.com/blog/running-hadoop-cloud
Disponibilidade de Datasets Públicos
Infraestrutura para Big Data e Cloud Computing – Prof. Tiago
• YFCC100M -
https://multimediacommons.wordpress.com/yfcc100m-core-d
ataset/
Big Data e História do
Hadoop
• Início dos anos 2000
• Surgimento de metodologias de armazenamento e processamento ("Big Data")
de
provedores de mecanismos de busca (Google e Yahoo!)
• Hadoop 2 (2013)
• Introduz o YARN – otimiza a alocação de recursos para várias aplicações
• Hadoop 3 (2017)
• Resolve o problema de SPOF (ponto única de falha) do HDFS - suporta vários
namenodes
• O HDFS usa erasure coding - reduz a sobrecarga de armazenamento
• Utilização de contêineres (Docker)
• Suporta a utilização de GPUs para processamento (Deep Learning)
Componentes do Ecossistema Hadoop
• O Ecossistema Hadoop inclui outros
projetos que interagem ou integram
com o Hadoop
• Ingestão de dados
• Análise de dados
• Bancos de dados NoSQL
• Segurança
• Gestão
• Busca
• Aprendizado de Máquina
• Coordenação do fluxo de trabalho
• etc
https://www.edureka.co/blog/hadoop-ecosystem
Alguns exemplos de configuração
• Fonte: https://wiki.apache.org/hadoop/PoweredBy
• Alibaba
• A 15-node cluster dedicated to processing sorts of business data dumped out of database and joining
them together. These data will then be fed into iSearch, our vertical search engine.
• Each node has 8 cores, 16G RAM and 1.4T storage.
• EBay
• 532 nodes cluster (8 * 532 cores, 5.3PB).
• Heavy usage of Java MapReduce, Apache Pig, Apache Hive, Apache HBase
• Using it for Search optimization and Research.
• Facebook
• We use Apache Hadoop to store copies of internal log and dimension data sources and use it as a
source for reporting/analytics and machine learning.
• Currently we have 2 major clusters:
• A 1100-machine cluster with 8800 cores and about 12 PB raw storage.
• A 300-machine cluster with 2400 cores and about 3 PB raw storage.
• Each (commodity) node has 8 cores and 12 TB of storage.
Alguns exemplos de configuração (parte 2)
• Fonte: https://wiki.apache.org/hadoop/PoweredBy
• Last.fm
• 100 nodes
• Dual quad-core Xeon L5520 @ 2.27GHz & L5630 @ 2.13GHz , 24GB RAM, 8TB(4x2TB)/node storage.
• Used for charts calculation, royalty reporting, log analysis, A/B testing, dataset merging
• Also used for large scale audio feature analysis over millions of tracks
• LinkedIn
• ~800 Westmere-based HP SL 170x, with 2x4 cores, 24GB RAM, 6x2TB SATA
• ~1900 Westmere-based SuperMicro X8DTT-H, with 2x6 cores, 24GB RAM, 6x2TB SATA
• ~1400 Sandy Bridge-based SuperMicro with 2x6 cores, 32GB RAM, 6x2TB SATA
• We use these things for discovering People You May Know and other fun facts.
• Spotify
• We use Apache Hadoop for content generation, data aggregation, reporting, analysis and even
for generating music recommendations
• 1650 node cluster : 43,000 virtualized cores, ~70TB RAM, ~65 PB storage
• +20,000 daily Hadoop jobs
Alguns exemplos de configuração (parte 3)
• Fonte: https://wiki.apache.org/hadoop/PoweredBy
• Yahoo!
• More than 100,000 CPUs in >40,000 computers running Hadoop
• Our biggest cluster: 4500 nodes (2*4cpu boxes w 4*1TB disk & 16GB RAM)
• Used to support research for Ad Systems and Web Search
• Also used to do scaling tests to support development of Apache Hadoop on larger clusters
ARQUITETURA DO
HADOOP
Arquitetura do Hadoop
• Hadoop MapReduce – implementação do modelo de programação MapReduce
• Hadoop YARN (Yet Another Resource Negotiator) – plataforma para gerência dos
recursos computacionais e escalonamento de aplicações
• HDFS (Hadoop Distributed File System) – sistema de arquivos distribuído para
armazenamento dos dados
https://data-flair.training/blogs/hadoop-architecture/
HDFS – Conceitos Básicos
• Arquitetura de cluster mestre-escravo
• Modelo de comunicação em que um processo tem controle sobre um ou mais
outros processos
• NameNode (Mestre)
• Gerencia os metadados do sistema de arquivos
• DataNode (Escravo)
• Responsável por gerenciar o armazenamento em bloco e o acesso a dados de
leitura / gravação
• Também responsável pela replicação de blocos
Arquitetura do HDFS
https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html
HDFS – Conceitos Básicos
• HDFS é um sistema de arquivos virtual
• Ele aparece como um sistema único, mas seus dados estão
localizados em vários locais diferentes
• Ele é implantado sobre um sistema de arquivos nativo
• Os dados armazenados no HDFS são imutáveis -
não podem ser atualizados depois de confirmados
• Sistema de arquivos WORM (escreva uma vez, leia
muitas)
• Os arquivos são divididos em blocos quando
ingeridos no HDFS
• Tamanho padrão = 128 MB (configurável)
• Os blocos são distribuídos e replicados entre
um ou mais
nós do cluster
• Os metadados do sistema de arquivos contêm
informações sobre diretórios virtuais, arquivos e blocos
físicos que compõem os arquivos
Interface Web do
NameNode
YARN – Conceitos Básicos
• Usa um modelo mestre-escravo como o HDFS
• ResourceManager (Mestre)
• Responsável por escalonar aplicações e conceder os recursos de computação do
cluster
• Controla o status das aplicações
• Os recursos são representados como unidades chamadas ”containers" (combinações
de núcleos de CPU e memória)
• Controla a capacidade disponível no cluster - aloca e libera containers para aplicações
• Para cada aplicação submetida, o ResourceManager aloca o primeiro container em
um NodeManager disponível como um processo responsável pela aplicação chamado
"ApplicationMaster"
YARN – Conceitos Básicos
• NodeManager (Escravo)
• Gerencia containers YARN em execução nos nós do cluster
• Monitora o consumo e relata o progresso, o status e a saúde da aplicação
ao ResourceManager
• ApplicationMaster
• Determina os recursos necessários para executar a aplicação (com base na quantidade
de dados a serem processados)
• Orquestra a alocação de recursos para executar estágios da aplicação (por exemplo,
estágios Map e Reduce)
• O ApplicationMaster solicita recursos do ResourceManager em nome da aplicação
• O ResourceManager concede recursos no mesmo ou em outros NodeManagers ao
ApplicationMaster
• Monitora o progresso de tarefas, estágios (grupos de tarefas executados em paralelo)
e dependências
Arquitetura do
YARN 1 2
3
Interface Web do ResourceManager
MapReduce - Modelo de Programação
• Inspirado nas primitivas
Map e Reduce do Lisp e
outras linguagens de
programação funcionais
• O MapReduce inclui:
• Duas fases de processamento
implementadas pelo
desenvolvedor: fase de Map
e fase de Reduce
• Fase implementada pelo
framework: fase de Shuffle-
and-Sort
Exemplo – Wordcount
https://cs.calvin.edu/courses/cs/374/exercises/12/lab/
Execução do MapReduce no Hadoop
http://hadooptutorial.info/yarn-web-ui/
Spark – Introdução
• Iniciou em 2009 - Berkeley RAD Lab (University of California)
https://www.sigmoid.com/apache-spark-internals/
Spark Driver – Interface Web
https://jaceklaskowski.gitbooks.io/mastering-apache-spark/spark-webui.html
Spark – Extensões
• SparkSQL
• Fornece abstração do tipo SQL para a API principal do Spark
• Spark Streaming
• Introduz objetos e funções projetados para processar fluxos de dados
• Suporta operações de processamento de fluxo (operações de estado e janela deslizante)
• SparkR
• Fornece acesso ao Spark e operações com dataframes distribuídos usando a linguagem R
• MLlib
• Biblioteca integrada no Spark para aprendizado de máquina
• Inclui algoritmos e utilitários comuns de aprendizado de máquina para preparação de dados, extração de
features, treinamento de modelos e testes
• GraphX
• Processamento de grafos com Spark
• Fornece um conjunto completo de abstrações, transformações e algoritmos para processamento de
grafos
BIG DATA & CLOUD
COMPUTING
Cloud versus infraestrutura on-premises
Infraestrutura para Big Data e Cloud Computing – Prof. Tiago
On-premises Cloud
Grande custo inicial. Precisa configurar servidores Evita os custos de inicialização. Aumento da
Custo
de ponta, rede, armazenamento. demanda e pagamento por uso.
Requer pessoal local para instalar, gerenciar e Também requer equipe, mas com foco no
Equipe
dar suporte à infraestrutura problema.
Requer avaliação adicional da capacidade
necessária para adquirir hardware. Dependendo
Escalabilidade da análise da demanda de capacidade, pode Recursos podem ser adicionados sob demanda
haver uma grande quantidade de recursos
Ferreto
ociosos.
AWS – EMR (Elastic MapReduce)
Infraestrutura para Big Data e Cloud Computing – Prof. Tiago
• https://azure.microsoft.com/en-us/services/hdinsight/
Ferreto
Infraestrutura para Big Data e Cloud Computing – Prof. Tiago
Ferreto
• https://cloud.google.com/dataproc/
Google Cloud Dataproc
Referências – Big Data
Infraestrutura para Big Data e Cloud Computing – Prof. Tiago