Map reduce novas abordagens para o processo de datamining em grandes volumnes de dados
1. MapReduce
Novas abordagens para o processo de
DataMining em grandes volumes de dados
J. Gabriel Lima
jgabriel.ufpa@gmail.com
LINC - Laboratório de Inteligência Computacional
3. l
Nos últimos cinco anos, os pesquisadores e desenvolvedores do
Google tem implementado centenas de propostas de técnicas e
cálculos que processam grandes quantidades de dados brutos e
para computar vários tipos de dados derivados, tais como:
l
Índices invertidos
l
Representações diversas da estrutura de gráfico de documentos
l
Resumos do número de páginas rastreadas por host
l
Estatística das consultas mais frequentes em um determinado
dia.
Introdução
4. l
Os cálculos são conceitualmente simples...
l
O problema é que os dados de entrada são muito grandes...
l
Solução: Distribuir esses cálculos através de centenas ou
milhares de máquinas
l
Garantir o término em um tempo razoável
Introdução
5. “ Como reação a essa complexidade, foi elaborado uma nova
abstração que nos permite expressar os cálculos simples que
estávamos tentando realizar, mas esconde os detalhes confusos de
paralelização, tolerância a falhas de distribuição de dados
e balanceamento de carga”
Introdução
6. l
A nova abstração é inspirado no 'Map' e 'Reduce' primitivos
presentes em Lisp e muitas outras linguagens funcionais.
l
Percebemos que a maioria dos nossos cálculos envolvidos
aplicação de uma operação de Map para cada "registro" lógico em
nossa entrada, a fim de calcular um conjunto de pares
intermediários de chave/valor e, em seguida , a aplicação de uma
operação de Reduce a todos os valores que partilhavam a mesma
chave, a fim de combinar os dados derivados apropriadamente
Conceitos Gerais
7. As maior contribuição dessa nova abordagem é a implantação de
uma simples e poderosa interface que permite a paralelização
automática e distribuição da computação em grande escala,
combinado com uma implementação desta interface que atinge alta
performance em grandes aglomerados de máquinas
Conceitos Gerais
8. O cálculo toma um conjunto de pares de entradas de chave/valor, e
produz um conjunto de pares de saídas chave/valor.
O usuário que implementa o MapReduce expressa o cálculo como
duas funções: Map e Raduce.
Modelo de Programação
9. Map, escrito pelo usuário, leva um par de entrada e produz um
conjunto de pares intermediários de chave/valor.
Neste processo há uma junção de todos os valores intermediários
associados com uma mesma chave intermediária, afim de passá-los
para a função Reduce.
MAP
10. A função Reduce, também escrito pelo usuário, aceita
l
uma chave intermediária e um conjunto de valores para essa
chave.
l
Ela faz uma fusão desses valores em conjunto, para formar um
menor conjunto de valores possível.
l
l
Tipicamente apenas zero ou um valor de saída é produzido por um
método Reduce.
l
Os valores intermédios são fornecidos para a função através de
uma iteração. Isto permite-nos lidar com listas de valores que são
demasiadamente grandes para caber na memória.
Reduce
15. Programa que processa e conta o número de ocorrências de cada
palavra em um texto:
Nº Linhas: 3800
Nº palavras: 4411
Tempo: ~ 0.00909018516541 microssegundos
Exemplo Prático
16. O modelo de programação MapReduce tem sido utilizado com
sucesso no Google para diversas finalidades. Atribui-se o sucesso a
várias razões:
l
o modelo é fácil de usar, mesmo para programadores sem experiência
com os sistemas paralelos e distribuídos, já que esconde a detalhes da
paralelização, tolerância a falhas, otimização de localidade, e
balanceamento de carga.
l
Uma grande variedade de problemas são facilmente transcritos para o uso
do MapReduce.
l
É usado para a geração de dados para o serviço de busca do Google, para
classificação, para mineração de dados, para aprendizado de máquina e
muitos outros sistemas.
18. Map-Reduce for Machine Learning on Multicore (Cheng-Tao Chu)
Mostram que os algoritmos que se encaixam no modelo de consulta
estatística podem ser escritos em uma "forma de somatório,"
permitindo o uso do MapReduce para paralelizar o processamento em
computadores multicore.
Algoritmos
. - Locally Weighted Linear Regression (LWLR)
- Naive Bayes (NB)
- Gaussian Discriminative Analysis (GDA)
- k-means
- Logistic Regression (LR)
- Neural Network (NN)
- Principal Components Analysis (PCA)
- Independent Component Analysis (ICA)
- Expectation Maximization (EM)
- Support Vector Machine (SVM)
.
19. BBM: Bayesian Browsing Model from Petabyte-scale Data
(Chao Liu - Microsoft Research)
“Dado um base de dados de petabytes de logs de clique, como podemos
estimar a relevância de cada URL para uma determinada consulta?”
Neste trabalho é proposto o Modelo de Navegação Bayesiana (BBM), uma
nova técnica de modelagem com vantagens seguintes:
.
(a) Faz inferência exata;
(b) É single-pass e paralelizável;
(c) É eficaz.
São apresentados dois conjuntos de experiências
No primeiro conjunto de mais de 50 milhões casos de busca de 1,1 milhões
de consultas distintas, BBM supera o concorrente ser 57 vezes mais rápido.
Na segunda, é apresentado a escalabilidade da BBM usando o MapReduce
20. Hive - A Warehousing Solution Over a Map-Reduce Framework -
Facebook Data Infrastructure Team
Apresenta-se o Hive, uma solução open-source de armazenamento de dados
construída em cima do Hadoop.
Hive suporta consultas expressas em uma linguagem SQL-like declarativa -
HiveQL e que são compilados em Map-Reduce executados no Hadoop.
Além disso, suporta HiveQL Map-Reduce personalizados para a criação de
.scripts de consultas.
As bibliotecas subjacentes IO pode ser estendido para consultar dados em
formatos personalizados.
Ramificação também inclui um sistema catálogo, Hive-Metastore, esquemas
contendo e estatísticas, o que é útil na exploração de dados e otimização de
consulta.
No Facebook, o armazém Hive contém vários milhares tabelas com mais de 7
terabytes de
dados e está sendo amplamente utilizado para relatórios e análises de dados.
21. Scaling Simple and Compact Genetic Algorithms
using MapReduce
Neste artigo, mostramos como os algoritmos genéticos podem ser modelados
no modelo MapReduce.
Descrevemos o projeto de algoritmo e implementação de um
AG simples em Hadoop.
.
Nossos experimentos demonstram a convergência e escalabilidade
em 105 de 108 problemas.
Adicionando mais recursos nos permitiria resolver os problemas ainda maiores,
sem quaisquer alterações no algoritmo ou na implementação, uma vez que
não introduzem qualquer gargalos de performance.
22. COMET: A Recipe for Learning and Using Large Ensembles on Massive Dat
COMET é um algoritmo de single-pass para MapReduce em larga escala de dado
Baseia-se em um conjunto aleatório de blocos de dados distribuídos e funde-os em
um conjunto de mega-dados.
Esta abordagem é adequada quando a escala de dados que é grande demais para
caber em uma única máquina.
Experimentos com dois grandes conjuntos de dados (5 GB e 50GB compactados)
.
mostram
que o cometa se comporta favoravelmente (em precisão e tempo) .
23. HadoopDB: An Architectural Hybrid of MapReduce and
DBMS Technologies for Analytical Workloads (Brown University)
Neste artigo, os autores exploraram a viabilidade de construção de um sistema híbrido
que tem as melhores características de ambas as tecnologias, o protótipo que construímo
se aproxima bancos de dados paralelos em desempenho eeficiência, mas ainda produz a
escalabilidade, tolerância a falhas, e flexibilidade de sistemas
baseados em MapReduce.
.
24. Outros Trabalhos:
-A Map Reduce Framework for Programming Graphics Processors
- Application of Hadoop MapReduce Technique to Virtual Database System Design
- Application Performance Management for NoSQL
- BlobSeer- Bringing High Throughput under Heavy Concurrency to Hadoop Map-Reduce Applications
- Building a High-Level Dataflow System on top of Map-Reduce: The Pig Experience
- Can MPI Benefit Hadoop and MapReduce Applications
- CloudBurst: highly sensitive read mapping with MapReduce
- Colorful Triangle Counting and a MapReduce Implementation
- Computação intensiva em dados com MapReduce em ambientes oportunistas
. - Data-Intensive Text Processing with MapReduce
- Evaluating SPLASH-2 Applications Using MapReduce
- Evaluating the suitability of MapReduce for surface temperature analysis codes
- HADI: Mining Radii of Large Graphs
- Large-Scale Community Detection on YouTube for Topic Discovery and Exploration
- Learning Based Opportunistic Admission Control Algorithm for MapReduce as a Service
- Learning Influence Probabilities In Social Networks
- LogMaster: Mining Event Correlations in Logs of Large-scale Cluster Systems
- Map-reduce as a Programming Model for Custom Computing Machines
- MapReduce for Data Intensive Scientific Analyses
- Map-Reduce-Merge: Simplified Relational Data Processing on Large Clusters
- MapReduce Programming with Apache Hadoop IPDPS 2010 Symposium Tutorial
- Scalable Distributed Reasoning using MapReduce
25. Considerações Finais
- Considerando que:
- Yahoo! Processa 100 bilhões de eventos somando 120 terabytes por dia
- Facebook processa 80 terabytes por dia
… a técnica deve funcionar
Trabalhos Futuros
Aplicar as técnicas descritas desde a primeira apresentação em bases de dados
'reais'
- Segurança Pública
- CDI
- Vijay