apresentação em aplicações distribuídas – hadoop mapreduce
TRANSCRIPT
hadoop mapreduce
Alair FonsecaBianca Cristina Caique Matos Matteus Barbosa
Roteiro1. Hadoop;
2. MapReduce;
3. Challenges of Big Data analysis (2014);
4. The Hadoop Distributed File System(2010);
5. SEAL: A Distributed Short Read Mapping and Duplicate Removal Tool
6. Análise de Escalabilidade de Aplicações Hadoop/Mapreduce por meio de simulação
7. Referências Bibliográficas.
Hadoop Hadoop é um framework de software baseado em Java para gerência e processamento de
dados distribuídos, escalabilidade e gestão de falhas. É um container de bibliotecas open-source
para computação distribuída utilizando o modelo de programação MapReduce e seu próprio
sistema de arquivos, chamado HDFS. Se aplica a grandes instituições financeiras, institutos de
pesquisa, centrais nacionais de previsão climática e similares, onde há demanda por processamento
paralelo em larga escala.
Um computador cataloga os metadados e as réplicas de dados (NameNode).
Cada nó do cluster recebe uma cópia do framework (DataNodes).
Nota-se um grande ganho de performance e balanceamento de carga quando se parte do
princípio de processamento paralelo em nós. Em teste com 64 e 96 nós, obteve-se melhor fluxo em
um menor conjunto de dados, o que pôde ser mitigado quando o Hadoop for informado sobre a
topologia de cluster da rede.
Mapreduce
MapReduce é um modelo de programação composto basicamente por duas funções:
map e reduce.
A função map recebe uma entrada e retorna chave-valor; a função reduce recebe uma chave e
uma lista de valores associados a essa chave.
Hadoop is the most widespread implementation of MapReduce.Luca Pireddu,* Simone Leo, and Gianluigi Zanetti (SEAL)
MapReduce é integralmente suportado pelo HDFS. É notável a sua ampla aplicação no contexto
da bioinformática, uma vez que bancos de dados de expressões gênicas, por exemplo, requerem
processamento sobre bilhões de registros, o que se torna impossível com algoritmos convencionais.
Mapreduce
MapReduce apresenta uma solução de problemas parcialmente semelhante ao da
recursividade, que é de dividir problemas em partes menores. O nome provém de métodos
conhecidos: .map de Java que itera sobre cada elemento de uma coleção e .reduce de Scala que
combina valores com um dado operador matemático.
“A idéia é isolar cada mapeador, de tal forma que, quando um mapeador terminar seu trabalho, envie
seus dados ao redutor, que por sua vez junta os dados de todos os mapeadores”.(Andrea Lacono)
Challenges of Big Data analysis (2014)
Citação Exemplo
Quais são os objetivos da análise do BigData? De
acordo com Para Bickel P. dois objetivos principais da
análise de BigData são desenvolver métodos eficazes
que podem prever com precisão as observações
futuras e, identificar relações entre as características e
respostas para fins científicos.
MacDonald’s - “Breakfast all day”.
Tamanho da amostra e alta dimensionalidade trazem
heterogeneidade, Acúmulo de ruído, correlação
espúria e endogeneidade acidental.
Quando Nicolas Cage faz filmes, mortes são
evitadas.
Jianqing Fan1,∗, Fang Han2 and Han Liu1
Challenges of Big Data analysis (2014)
Citação Exemplo
MapReduce is a programming model for processing
large datasets in a parallel fashion.Buscar string em um texto.
Jianqing Fan1,∗, Fang Han2 and Han Liu1
The Hadoop Distributed File System (2010)
Citação Exemplo
Hadoop provides a distributed file system and a
framework for the analysis and transformation of very
large data sets using the MapReduce paradigm.
Hadoop e o modelo MapReduce é muito
utilizado para mineração de dados e para análise
do Big Data.
Hadoop is an Apache project; all components are
available via the Apache open source license.
O Hadoop originalmente teve a colaboração de
80% de seu desenvolvimento realizado pela
Yahoo!.
Konstantin Shvachko, Hairong Kuang, Sanjay Radia, Robert Chansler
The Hadoop Distributed File System (2010)
Citação Exemplo
The MapReduce framework automatically handles
parallel task scheduling, error detection and recovery.
Tarefas que são executadas paralelamente são
monitoradas e controladas pelo framework
MapReduce.
A Hadoop cluster, scales computation capacity,
storage capacity and IO bandwidth by simply adding
commodity servers.
Hadoop clusters, aciona servidores quando é
necessário aumentar a escala de processamento,
ou/e de armazenamento de computação.
Konstantin Shvachko, Hairong Kuang, Sanjay Radia, Robert Chansler
Análise de Escalabilidade de Aplicações Hadoop/Mapreduce por meio de simulação
Fabiano da Guia Rocha, Hermes Senger
Estudo sobre a escalabilidade de aplicações MapReduce executadas na plataforma Hadoop
utilizando um método que combina experimentação e simulação. Uma das experimentações foi
realizada em um cluster local de 32 nós. Como principais contribuições, este artigo mostra como a
abordagem combinada pode ser empregada para identificar os principais gargalos em termos de
escalabilidade de aplicações reais em diferentes cenários, melhorando significativamente a sua
escalabilidade em plataformas com milhares de nós.
Análise de Escalabilidade de Aplicações Hadoop/Mapreduce por meio de simulação
Fabiano da Guia Rocha, Hermes Senger
Nas execuções acima de 16 nós o speedup começa a cair, pois a aplicação possui apenas 26 tarefas
reduce. Convém destacar que, apesar de haver apenas 26 tarefas reduce (o que causa ociosidade além
de 13 nós), o speedup continua aumentando.
Análise de Escalabilidade de Aplicações Hadoop/Mapreduce por meio de simulação
Fabiano da Guia Rocha, Hermes Senger
Como se pode observar, a partir de 200 nós os ganhos foram pouco significativos e a partir
de 500 nós o ganho é praticamente nulo. Isso ocorre devido ao baixo grau de paralelismo da
fase reduce, que possui apenas 26 tarefas. O Speedup Total vai crescendo, já que não
recebe novas tarefas para trabalhar em paralelo.
SEAL: a distributed short read mapping and duplicate removal tool (2011)
Luca Pireddu∗, Simone Leo and Gianluigi Zanetti
Software online (com linha de comando), útil na área biomédica. Utilizada para leitura em pares e
remoção de duplicatas em sequências de DNA de experimentos. Identifica referências de mesma
coordenada e mantém as de maior qualidade, a julgar por seus parâmetros. É um software que foi
projetado para gerência de nós computacionais em cluster com Hadoop.
Nesse caso, Hadoop Mapreduce trabalha para gerenciar entrada e saída de dados em massa e
garantir confiabilidade no processo, uma vez que mitiga eventos passageiros como falhas de nós em
casos de pico de carga. A ferramenta lê bilhões de fragmentos de DNA (no HDFS). O artigo relata o
sucesso no uso de algoritmos MapReduce do framework Hadoop devido à sua escalabilidade.
Hadoop faz balanceamento de carga à medida em que são ativados novos “nós computacionais”,
resultando em ganho de performance quando se parte do princípio de processamento paralelo em
nós.
SEAL: a distributed short read mapping and duplicate removal tool (2011)
Luca Pireddu∗, Simone Leo and Gianluigi Zanetti
Hadoop permite a integração com outros frameworks:
“O mapeamento do SEAL está escrito em Python, e é integrado com o framework Hadoop usando Pydoo
(biblioteca auxiliar).“
SEAL mitiga a sobrecarga nos processamentos de diferentes conjuntos de sequências, inclusive mais
rapidamente que o software existente BWA (Burrows-Wheeler Aligner) sobre os mesmos conjuntos de
dados. A comparação, em horas, comprova a eficácia dos nós hadoop (em 99.5% dos testes) em
detrimento do modo de operação em nó único do BWA:
Referências Bibliográficas
MapReduce by Examples, de Andrea Lacono;
Uma Introdução ao Hadoop Distributed File System, de J. Jeffrey Hanson;
SEAL: A DISTRIBUTED SHORT READ MAPPING AND DUPLICATE REMOVAL TOOL, Luca Pireddu,
Simone Leo and Gianluigi Zanetti
ANÁLISE DE ESCALABILIDADE DE APLICAÇÕES HADOOP/MAPREDUCE POR MEIO DE SIMULAÇÃO,
Fabiano da Guia Rocha, Hermes Senger
CHALLENGES OF BIG DATA ANALYSIS, Jianqing Fan, Fang Han and Han Liu
The Hadoop Distributed File System, Konstantin Shvachko, Hairong Kuang, Sanjay Radia, Robert
Chansler
Obrigado