O Apache Hadoop tem se tornado o framework padrão para processamento de Big Data. Com ele, podemos processar grandes volumes de dados utilizando hardware de baixo custo de forma paralela e distribuída. Essas características podem ser úteis no cotidiano do desenvolvedor, otimizando a execução de rotinas batch e geração de relatórios, por exemplo. Nesta palestra serão mostrados os passos para desenvolver uma solução utilizando algumas ferramentas que fazem parte do ecossistema do Hadoop: MapReduce, HDFS e HBase.
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
Bigdata na pratica: Resolvendo problemas de performance com hadoop
1. Big Data na prática
Resolvendo problemas de performance com Hadoop
Marco Reis
http://marcoreis.net
@masreis
2. Agenda
● Modelo tradicional de desenvolvimento
● Desafios e oportunidades do big data
● Hadoop
– HDFS
– MapReduce
– Ecossistema
● Arquitetura de soluç ões com Hadoop
3. Quem
● Marco Reis
– Arquitetura de software
– Java EE
– Sistemas de busca
– Big data
4. A histó ria
● Estamos sempre envolvidos em projetos de
sistemas
– Abordagem tradicional de desenvolvimento
● “Big data é para grandes projetos”
● “Big data é para inteligência artificial”
● “Não é para mim”
5. O modelo tradicional
● Linguagem de alto nível (Java/.NET/Ruby)
● Banco de dados relacionais
● Padronização
– Padrões de projeto de software
– SQL ANSI
– Servidor de aplicação
– Maturidade (décadas de evolução)
6. Um dia...
● O sistema escala
– Versão web
– Versão mobile
7.
8. E descobrimos as limitaç ões
● Processamento
– Mais processamento = mais hardware
● Input/Output
– IO de alta performance é caro
● Tempo de resposta inaceitável
– Relató rios semanais
● Custo (Hardware e software)
– Adquirir mais máquinas?
9. Chega o big data
● Implementaç ão mais conhecida: Hadoop
● Complementaç ão do modelo tradicional
– Não substituiç ão
● Pode ser integrado com outras ferramentas
– Driver para banco de dados relacional
– API Java
– RESTful web services
10. Big data
● Um termo novo para um problema antigo
● Processamento de grande volume de dados
● Alternativa ao modelo tradicional
– Escala (terabytes / petabytes / exabytes)
– Velocidade (rede social, logs, integraç ão)
– Complexidade (dados estruturados, semi-
estruturados e não estruturados)
● Não existe uma definiç ão formal para Big Data
11.
12. Quem precisa de Big Data?
● A demanda jáexiste e talvez vocênão tenha
percebido
– Processamento em lote
– Relató rios
– ETL
– Melhoria de performance
● Podemos oferecer novas funcionalidades para o
cliente
● Ou simplesmente por curiosidade!
13. Usos avanç ados
● NLP (Natural Language Processing)
● Mobilidade urbana
● IoT (Internet of Things)
– 50 bilhões de dispositivos (sensores) conectados
em 2025
● Data as a Service e Big Data as a Service
15. Eliminaç ão dos limites
● Facilidade para criar contextos
– Os modelos não precisam estar definidos a priori
– Criaç ão de modelos por demanda
– Armazene tudo
– Depois descubra como extrair valor
16. Questões éticas e legais
● Big data não é sobre números.
● Big data é sobre pessoas!!!
– Privacidade
– Críticas
– Comparaç ões
17. Hadoop
● Software para computaç ão distribuída de alta
performance
– Tolerância a falhas / Redundância
– Cluster / processamento paralelo
● Hardware de baixo custo (processador e disco)
– Diferente de hardware de baixa qualidade
● Implementaç ão mais popular para big data
● Linearmente escalável
18. Hadoop = HDFS + MapReduce
● HDFS: Sistema de arquivos distribuído de alta
performance
● MapReduce: modelo de programaç ão
distribuída
● Moving Computation is Cheaper than Moving
Data
19. Hadoop é bom para...
● Processamento em lote
– Só isso járesolve muitos problemas
● Armazenamento
● Data warehouse (queries e reports)
● Reduç ão de custos
20. Usos imediatos do Hadoop
● Consolidaç ão / agregaç ão de dados
● Armazenamento
● Análise: log / estatística
● ETL
● Georreferenciamento
22. Alguns desafios do Hadoop
● Processamento de baixa latência ou busca de
registros individuais
– Use um banco NoSQL (HBase)
● Data warehouse
– Use o Hive
● Processamento com datasets pequenos
– O custo de implementaç ão é alto
● Sua aplicaç ão precisa mesmo ser
completamente transacional e em tempo real?
23. Tecnicamente falando
● Especializar os serviç os de dados
– SGBDR - serviç os em tempo real (transacionais)
– Hadoop - serviç os assíncronos
● Evitar concorrência entre os serviç os
– Alguns sistemas acessam o SGBDR
– Outros acessam o Hadoop
24. Ecossistema Hadoop
● Projetos paralelos e complementares
● Para cada problema, uma soluç ão
– Problemas específicos demandam ferramentas
específicas
26. Sqoop
● Importaç ão e exportaç ão de dados entre
Hadoop e bancos relacionais
● Exemplo: scripts rodando com frequência
determinada
– 10 minutos
– 1 hora
– 12 horas
27. HBase
● Banco de dados NoSQL
– Baixa latência
● Orientado a coluna
– Suporta bilhões de colunas
● A modelagem não é trivial (multidimensional)
– Chave, família da coluna, qualificador e valor
● Não é substituto do banco relacional
29. Pig
● Plataforma para análise de dados com
linguagem de alto nível
● Produz uma sequência de programas
MapReduce
30. Oozie
● Workflow para processamento Hadoop
● Indica a ordem em que os jobs devem rodar
● Suporta diversas aç ões:
– Copiar arquivos para o HDFS
– Iniciar os jobs MapReduce
– Importar/exportar dados com o Sqoop
31. Cenário 1: processamento em lote
● Importar os dados (Sqoop/HDFS)
● Processar os dados com MapReduce
● Exportar o resultado processado (reduzido)
para o banco relacional
● Consequência: alívio do servidor de aplicaç ão e
banco de dados, sem mudar o có digo da
aplicaç ão
32. Cenário 2: alternar fontes de dados
● Problema: lentidão em um mó dulo do sistema
● Exportar dados do relacional
● Alterar uma parte não transacional da aplicaç ão
para acessar os dados do HBase
● Vantagem: baixa latência, a aplicaç ão fica mais
rápida
● Desvantagem: aumenta complexidade
33. Cenário 3: ETL
● Importaç ão de dados de várias fontes
(relacional/HDFS/HBase/Hive)
● Transformaç ão (enriquecimento) dos dados
– MapReduce ou Pig
● Carregar os dados no destino
34. Cenário 4: data warehouse
● Útil quando consideramos grandes data sets
● A latência é aceitável
● Disponível para usuários especializados
35. Concluindo
● Outras ferramentas fazem a mesma coisa
● Não existe uma solução perfeita para os
problemas
– Muitas combinações diferentes
● Podemos integrar o Hadoop com uma
aplicação já existente