Bigdata na pratica: Resolvendo problemas de performance com hadoop

Embed Size (px)

Citation preview

Big Data na prtica

Resolvendo problemas de performance com Hadoop

Marco Reishttp://marcoreis.net@masreis

Agenda

Modelo tradicional de desenvolvimento

Desafios e oportunidades do big data

HadoopHDFS

MapReduce

Ecossistema

Arquitetura de solues com Hadoop

Quem

Marco ReisArquitetura de software

Java EE

Sistemas de busca

Big data

A histria

Estamos sempre envolvidos em projetos de sistemasAbordagem tradicional de desenvolvimento

Big data para grandes projetos

Big data para inteligncia artificial

No para mim

O modelo tradicional

Linguagem de alto nvel (Java/.NET/Ruby)

Banco de dados relacionais

PadronizaoPadres de projeto de software

SQL ANSI

Servidor de aplicao

Maturidade (dcadas de evoluo)

Um dia...

O sistema escalaVerso web

Verso mobile

E descobrimos as limitaes

ProcessamentoMais processamento = mais hardware

Input/OutputIO de alta performance caro

Tempo de resposta inaceitvelRelatrios semanais

Custo (Hardware e software)Adquirir mais mquinas?

Chega o big data

Implementao mais conhecida: Hadoop

Complementao do modelo tradicionalNo substituio

Pode ser integrado com outras ferramentasDriver para banco de dados relacional

API Java

RESTful web services

Big data

Um termo novo para um problema antigo

Processamento de grande volume de dados

Alternativa ao modelo tradicionalEscala (terabytes / petabytes / exabytes)

Velocidade (rede social, logs, integrao)

Complexidade (dados estruturados, semi-estruturados e no estruturados)

No existe uma definio formal para Big Data

Quem precisa de Big Data?

A demanda j existe e talvez voc no tenha percebidoProcessamento em lote

Relatrios

ETL

Melhoria de performance

Podemos oferecer novas funcionalidades para o cliente

Ou simplesmente por curiosidade!

Usos avanados

NLP (Natural Language Processing)

Mobilidade urbana

IoT (Internet of Things)50 bilhes de dispositivos (sensores) conectados em 2025

Data as a Service e Big Data as a Service

Fonte: Smart Steps (Telefonica)

Eliminao dos limites

Facilidade para criar contextosOs modelos no precisam estar definidos a priori

Criao de modelos por demanda

Armazene tudo

Depois descubra como extrair valor

Questes ticas e legais

Big data no sobre nmeros.

Big data sobre pessoas!!!Privacidade

Crticas

Comparaes

Hadoop

Software para computao distribuda de alta performanceTolerncia a falhas / Redundncia

Cluster / processamento paralelo

Hardware de baixo custo (processador e disco)Diferente de hardware de baixa qualidade

Implementao mais popular para big data

Linearmente escalvel

Hadoop = HDFS + MapReduce

HDFS: Sistema de arquivos distribudo de alta performance

MapReduce: modelo de programao distribuda

Moving Computation is Cheaper than Moving Data

Hadoop bom para...

Processamento em loteS isso j resolve muitos problemas

Armazenamento

Data warehouse (queries e reports)

Reduo de custos

Usos imediatos do Hadoop

Consolidao / agregao de dados

Armazenamento

Anlise: log / estatstica

ETL

Georreferenciamento

O Hadoop resolve tudo?

Alguns desafios do Hadoop

Processamento de baixa latncia ou busca de registros individuaisUse um banco NoSQL (HBase)

Data warehouseUse o Hive

Processamento com datasets pequenosO custo de implementao alto

Sua aplicao precisa mesmo ser completamente transacional e em tempo real?

Tecnicamente falando

Especializar os servios de dadosSGBDR - servios em tempo real (transacionais)

Hadoop - servios assncronos

Evitar concorrncia entre os serviosAlguns sistemas acessam o SGBDR

Outros acessam o Hadoop

Ecossistema Hadoop

Projetos paralelos e complementares

Para cada problema, uma soluoProblemas especficos demandam ferramentas especficas

Ferramentas

Juntar todas essas peas um exerccio de criatividade

Sqoop

Importao e exportao de dados entre Hadoop e bancos relacionais

Exemplo: scripts rodando com frequncia determinada10 minutos

1 hora

12 horas

HBase

Banco de dados NoSQLBaixa latncia

Orientado a colunaSuporta bilhes de colunas

A modelagem no trivial (multidimensional)Chave, famlia da coluna, qualificador e valor

No substituto do banco relacional

Hive

Data warehouse

Consultas usando padro SQL (HiveQL)

Sumarizao simplificada

Pig

Plataforma para anlise de dados com linguagem de alto nvel

Produz uma sequncia de programas MapReduce

Oozie

Workflow para processamento Hadoop

Indica a ordem em que os jobs devem rodar

Suporta diversas aes:Copiar arquivos para o HDFS

Iniciar os jobs MapReduce

Importar/exportar dados com o Sqoop

Cenrio 1: processamento em lote

Importar os dados (Sqoop/HDFS)

Processar os dados com MapReduce

Exportar o resultado processado (reduzido) para o banco relacional

Consequncia: alvio do servidor de aplicao e banco de dados, sem mudar o cdigo da aplicao

Cenrio 2: alternar fontes de dados

Problema: lentido em um mdulo do sistema

Exportar dados do relacional

Alterar uma parte no transacional da aplicao para acessar os dados do HBase

Vantagem: baixa latncia, a aplicao fica mais rpida

Desvantagem: aumenta complexidade

Cenrio 3: ETL

Importao de dados de vrias fontes (relacional/HDFS/HBase/Hive)

Transformao (enriquecimento) dos dadosMapReduce ou Pig

Carregar os dados no destino

Cenrio 4: data warehouse

til quando consideramos grandes data sets

A latncia aceitvel

Disponvel para usurios especializados

Concluindo

Outras ferramentas fazem a mesma coisa

No existe uma soluo perfeita para os problemasMuitas combinaes diferentes

Podemos integrar o Hadoop com uma aplicao j existente

Marco Reishttp://marcoreis.net@masreis