Arquiteturas, Tecnologias e Desafios 
para Análise de BigData 
Sandro S. Andrade 
Instituto Federal de Educação, Ciência e Tecnologia (IFBa) 
Grupo de Pesquisa em Sistemas Distribuídos, Otimização, 
Redes e Tempo-Real (GSORT) 
sandroandrade@ifba.edu.br 
@andradesandro 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade 
Agenda 
● Motivação 
● O MapReduce 
● O Hadoop 
● Design Patterns para MapReduce 
● Hadoop – Projetos Relacionados 
● Desafios Atuais 
● Conclusão
Motivação 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Motivação 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Motivação 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Motivação 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Motivação 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade 
● BigData: 
– Termo utilizado para descrever qualquer conjunto de 
dados grande e complexo o suficiente para inviabilizar 
o uso das tecnologias tradicionais de armazenamento 
e processamento 
● Características: 
– Volume 
– Variedade 
– Velocidade 
– Variabilidade 
– Complexidade
Motivação 
● BigData hoje: 
– eBay.com: cluster Hadoop de 40PB para busca, 
recomendações e propaganda 
– Amazon.com: armazenamentos de 7.8, 18.5 e 24.7TB 
– Wallmart: 1 milhão de transações de clientes por hora, 
armazenadas em uma base de 2.5PB 
– Facebook: 50 bilhões de fotos, 600TB de novos dados 
por dia, 684.478 postagens por minuto 
– Youtube: 48h de novos vídeos por minuto 
– Instagram: 3600 novas fotos por minuto 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Motivação 
● BigData hoje: 
– Colisor LHC: 15 PB por ano 
– Radiologia: 69 PB por ano 
– Square Kilometre Array (SKA): 0.5 ZB por ano em 2022 
– Observação da terra: 4PB por ano 
– Análise de dados sísmicos: alguns TB por dia 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Motivação 
● Porque analisar todos estes dados ? 
– Marketing mais efetivo 
– Aumento nos lucros 
– Redução de custos 
– Melhorias nas tamadas de decisão 
– Sistemas de recomendação 
– Análise de risco 
– Smart Cities 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O MapReduce 
● Estilo arquitetural e paradigma de computação 
para processamento distribuído de dados que 
residem em uma grande quantidade de 
computadores 
● Criado pelo Google e popularizado em 2004, no 
artigo “MapReduce: Simplified Data Processing on 
Large Clusters” 
● Logo depois o projeto Hadoop foi criado por Doug 
Cutting, financiado pelo Yahoo! e passou a 
integrar a Apache Foundation 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O MapReduce 
● Visão geral do MapReduce: 
– Dados são armazenados em um sistema de arquivos 
distribuído, implementado em milhares de máquinas 
em um cluster 
– Jobs são implementados como tarefas de map e 
tarefas de reduce que executam em um cluster 
– Cada tarefa processa um pequeno subconjunto dos 
dados, de modo que a carga é dividida entre as 
máquinas do cluster 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O MapReduce 
● Visão geral do MapReduce: 
– A tarefa de map geralmente faz carga, parse, 
transformação e filtragem de dados 
– A tarefa de reduce é responsável por tratar um 
subconjunto dos dados de saída das tarefas de map 
– Dados intermediários são copiados das tarefas map 
para as tarefas reduce, de modo a agregar e agrupar 
os dados de saída 
– Um amplo conjunto de problemas pode ser resolvido 
com este paradigma, desde agregações numéricas 
simples até joins e produtos cartesianos 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O MapReduce 
● Visão geral do MapReduce: 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O MapReduce 
● Visão geral do MapReduce – exemplo de job: 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O Hadoop 
● Framework open source para armazenamento e 
processamento de BigData em larga-escala 
● Serviços: 
– Sistema de arquivos distribuído (HDFS) 
– Framework para execução de aplicações paralelas 
(YARN) 
– MapReduce como um dos modelos de computação 
distribuída suportados no YARN 
● Mantido pela Apache Foundation 
– http://hadoop.apache.org/ 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O Hadoop 
● Excelente escalabilidade e tolerância a falhas 
● Jobs podem ser programados em Java ou em 
outras linguagens (via Hadoop Streaming) 
● Boa escalabilidade horizontal (rebalanceamento) 
● Cerca de 190 parâmetros de configuração 
● Usos atuais: 
– Yahoo!: 42.000 máquinas rodando Hadoop 
– Facebook: 100PB de armazenamento no HDFS, 2.000 
máquinas (8/16 núcleos, 32GB RAM, 12TB HD). 0.5 PB 
de novos dados por dia 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O Hadoop 
● Arquitetura do HDFS: 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O Hadoop 
● Arquitetura do YARN: 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O Hadoop 
● Arquitetura do YARN: 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O Hadoop 
● Arquitetura do YARN: 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O Hadoop 
● YARN - escalonadores: 
– Fair Scheduler: 
● Desenvolvido pelo Facebook 
● Jobs são agrupados em pools 
● Garante-se a cada pool uma disponibilidade mínima de 
recursos 
● O excesso de capacidade é dividido entre os jobs 
– Capacity Scheduler: 
● Desenvolvido pelo Yahoo! 
● Jobs são submetidos a filas, que usam uma fração dos 
recursos 
● Recursos livres podem ser alocados a filas além da sua 
capacidade total 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O Hadoop 
● Exemplo – contador de palavras – main 
public static void main(String[] args) throws Exception { 
Configuration conf = new Configuration(); 
String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs(); 
if (otherArgs.length != 2) { 
System.err.println("Usage: wordcount <in> <out>"); 
System.exit(2); 
} 
Job job = new Job(conf, "word count"); 
job.setJarByClass(WordCount.class); 
job.setMapperClass(TokenizerMapper.class); 
job.setCombinerClass(IntSumReducer.class); 
job.setReducerClass(IntSumReducer.class); 
job.setOutputKeyClass(Text.class); 
job.setOutputValueClass(IntWritable.class); 
FileInputFormat.addInputPath(job, new Path(otherArgs[0])); 
FileOutputFormat.setOutputPath(job, new Path(otherArgs[1])); 
System.exit(job.waitForCompletion(true) ? 0 : 1); 
} 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O Hadoop 
● Exemplo – contador de palavras – mapper 
public static class TokenizerMapper 
extends Mapper<Object, Text, Text, IntWritable>{ 
private final static IntWritable one = new IntWritable(1); 
private Text word = new Text(); 
public void map(Object key, Text value, Context context 
) throws IOException, InterruptedException { 
StringTokenizer itr = new StringTokenizer(value.toString()); 
while (itr.hasMoreTokens()) { 
word.set(itr.nextToken()); 
context.write(word, one); 
} 
} 
} 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O Hadoop 
● Exemplo – contador de palavras – reducer 
public static class IntSumReducer 
extends Reducer<Text,IntWritable,Text,IntWritable> { 
private IntWritable result = new IntWritable(); 
public void reduce(Text key, Iterable<IntWritable> values, 
Context context 
) throws IOException, InterruptedException { 
int sum = 0; 
for (IntWritable val : values) { 
sum += val.get(); 
} 
result.set(sum); 
context.write(key, result); 
} 
} 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Design Patterns para MapReduce 
● Numerical Summarizations 
● Inverted Index Summarizations 
● Counting with Counters 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade 
● Filtering 
● Top Ten 
● Structured to Hierarchical 
● Reduce Side Join 
● Replicated Join 
● … muitos outros
Hadoop – Projetos Relacionados 
● Ambari: provisionamento, gerenciamento e 
monitoramento de clusters Hadoop 
● Cassandra: banco de dados com escalabilidade 
linear e alta disponibilidade (nenhum ponto único 
de falha) 
● HBase: banco de dados não relacional 
desenvolvido sobre o HDFS 
● Hive: análise de dados através de linguagem SQL-like 
(HiveQL). Desenvolvido pelo Facebook e 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade 
Netflix
Hadoop – Projetos Relacionados 
● Manout: biblioteca escalável para aprendizado de 
máquina 
● Pig: análise de dados com linguagens de 
alto nível 
● Spark: mapreduce de alto desempenho 
● Tez: processamento de dados com grafos 
direcionados acíclicos 
● ZooKeeper: coordenação e comunicação em grupo 
● Giraph: processamento interativo 
de grafos 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Hadoop – Ecossistema 
● Commits por empresa: 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Desafios Atuais 
● Garantia de QoS em clusters Hadoop 
● Controle e sintonia automática de parâmetros 
● Elasticidade automática 
● Mecanismos de alto nível (próximos ao negócio) 
para análise de dados 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Conclusão 
● Escalabilidade como requisito não-funcional 
primordial 
● Foco na acomodação de falhas de hardware 
● O MapReduce é interessante, mas limita o projeto 
e implementação dos jobs 
● É necessário formação profissional na área de 
sistemas distribuídos, arquitetura de software e 
análise de desempenho 
● Análise de BigData como diferencial competitivo 
nas organizações 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Obrigado ! 
Sandro S. Andrade 
Instituto Federal de Educação, Ciência e Tecnologia (IFBa) 
Grupo de Pesquisa em Sistemas Distribuídos, Otimização, 
Redes e Tempo-Real (GSORT) 
sandroandrade@ifba.edu.br 
@andradesandro 
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Arquiteturas, Tecnologias e Desafios para Análise de BigData

  • 1.
    Arquiteturas, Tecnologias eDesafios para Análise de BigData Sandro S. Andrade Instituto Federal de Educação, Ciência e Tecnologia (IFBa) Grupo de Pesquisa em Sistemas Distribuídos, Otimização, Redes e Tempo-Real (GSORT) sandroandrade@ifba.edu.br @andradesandro Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 2.
    Arquiteturas, Tecnologias eDesafios para Análise de BigData – Sandro S. Andrade Agenda ● Motivação ● O MapReduce ● O Hadoop ● Design Patterns para MapReduce ● Hadoop – Projetos Relacionados ● Desafios Atuais ● Conclusão
  • 3.
    Motivação Arquiteturas, Tecnologiase Desafios para Análise de BigData – Sandro S. Andrade
  • 4.
    Motivação Arquiteturas, Tecnologiase Desafios para Análise de BigData – Sandro S. Andrade
  • 5.
    Motivação Arquiteturas, Tecnologiase Desafios para Análise de BigData – Sandro S. Andrade
  • 6.
    Motivação Arquiteturas, Tecnologiase Desafios para Análise de BigData – Sandro S. Andrade
  • 7.
    Motivação Arquiteturas, Tecnologiase Desafios para Análise de BigData – Sandro S. Andrade ● BigData: – Termo utilizado para descrever qualquer conjunto de dados grande e complexo o suficiente para inviabilizar o uso das tecnologias tradicionais de armazenamento e processamento ● Características: – Volume – Variedade – Velocidade – Variabilidade – Complexidade
  • 8.
    Motivação ● BigDatahoje: – eBay.com: cluster Hadoop de 40PB para busca, recomendações e propaganda – Amazon.com: armazenamentos de 7.8, 18.5 e 24.7TB – Wallmart: 1 milhão de transações de clientes por hora, armazenadas em uma base de 2.5PB – Facebook: 50 bilhões de fotos, 600TB de novos dados por dia, 684.478 postagens por minuto – Youtube: 48h de novos vídeos por minuto – Instagram: 3600 novas fotos por minuto Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 9.
    Motivação ● BigDatahoje: – Colisor LHC: 15 PB por ano – Radiologia: 69 PB por ano – Square Kilometre Array (SKA): 0.5 ZB por ano em 2022 – Observação da terra: 4PB por ano – Análise de dados sísmicos: alguns TB por dia Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 10.
    Motivação ● Porqueanalisar todos estes dados ? – Marketing mais efetivo – Aumento nos lucros – Redução de custos – Melhorias nas tamadas de decisão – Sistemas de recomendação – Análise de risco – Smart Cities Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 11.
    O MapReduce ●Estilo arquitetural e paradigma de computação para processamento distribuído de dados que residem em uma grande quantidade de computadores ● Criado pelo Google e popularizado em 2004, no artigo “MapReduce: Simplified Data Processing on Large Clusters” ● Logo depois o projeto Hadoop foi criado por Doug Cutting, financiado pelo Yahoo! e passou a integrar a Apache Foundation Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 12.
    O MapReduce ●Visão geral do MapReduce: – Dados são armazenados em um sistema de arquivos distribuído, implementado em milhares de máquinas em um cluster – Jobs são implementados como tarefas de map e tarefas de reduce que executam em um cluster – Cada tarefa processa um pequeno subconjunto dos dados, de modo que a carga é dividida entre as máquinas do cluster Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 13.
    O MapReduce ●Visão geral do MapReduce: – A tarefa de map geralmente faz carga, parse, transformação e filtragem de dados – A tarefa de reduce é responsável por tratar um subconjunto dos dados de saída das tarefas de map – Dados intermediários são copiados das tarefas map para as tarefas reduce, de modo a agregar e agrupar os dados de saída – Um amplo conjunto de problemas pode ser resolvido com este paradigma, desde agregações numéricas simples até joins e produtos cartesianos Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 14.
    O MapReduce ●Visão geral do MapReduce: Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 15.
    O MapReduce ●Visão geral do MapReduce – exemplo de job: Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 16.
    O Hadoop ●Framework open source para armazenamento e processamento de BigData em larga-escala ● Serviços: – Sistema de arquivos distribuído (HDFS) – Framework para execução de aplicações paralelas (YARN) – MapReduce como um dos modelos de computação distribuída suportados no YARN ● Mantido pela Apache Foundation – http://hadoop.apache.org/ Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 17.
    O Hadoop ●Excelente escalabilidade e tolerância a falhas ● Jobs podem ser programados em Java ou em outras linguagens (via Hadoop Streaming) ● Boa escalabilidade horizontal (rebalanceamento) ● Cerca de 190 parâmetros de configuração ● Usos atuais: – Yahoo!: 42.000 máquinas rodando Hadoop – Facebook: 100PB de armazenamento no HDFS, 2.000 máquinas (8/16 núcleos, 32GB RAM, 12TB HD). 0.5 PB de novos dados por dia Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 18.
    O Hadoop ●Arquitetura do HDFS: Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 19.
    O Hadoop ●Arquitetura do YARN: Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 20.
    O Hadoop ●Arquitetura do YARN: Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 21.
    O Hadoop ●Arquitetura do YARN: Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 22.
    O Hadoop ●YARN - escalonadores: – Fair Scheduler: ● Desenvolvido pelo Facebook ● Jobs são agrupados em pools ● Garante-se a cada pool uma disponibilidade mínima de recursos ● O excesso de capacidade é dividido entre os jobs – Capacity Scheduler: ● Desenvolvido pelo Yahoo! ● Jobs são submetidos a filas, que usam uma fração dos recursos ● Recursos livres podem ser alocados a filas além da sua capacidade total Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 23.
    O Hadoop ●Exemplo – contador de palavras – main public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs(); if (otherArgs.length != 2) { System.err.println("Usage: wordcount <in> <out>"); System.exit(2); } Job job = new Job(conf, "word count"); job.setJarByClass(WordCount.class); job.setMapperClass(TokenizerMapper.class); job.setCombinerClass(IntSumReducer.class); job.setReducerClass(IntSumReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job, new Path(otherArgs[0])); FileOutputFormat.setOutputPath(job, new Path(otherArgs[1])); System.exit(job.waitForCompletion(true) ? 0 : 1); } Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 24.
    O Hadoop ●Exemplo – contador de palavras – mapper public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable>{ private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(Object key, Text value, Context context ) throws IOException, InterruptedException { StringTokenizer itr = new StringTokenizer(value.toString()); while (itr.hasMoreTokens()) { word.set(itr.nextToken()); context.write(word, one); } } } Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 25.
    O Hadoop ●Exemplo – contador de palavras – reducer public static class IntSumReducer extends Reducer<Text,IntWritable,Text,IntWritable> { private IntWritable result = new IntWritable(); public void reduce(Text key, Iterable<IntWritable> values, Context context ) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } result.set(sum); context.write(key, result); } } Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 26.
    Design Patterns paraMapReduce ● Numerical Summarizations ● Inverted Index Summarizations ● Counting with Counters Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade ● Filtering ● Top Ten ● Structured to Hierarchical ● Reduce Side Join ● Replicated Join ● … muitos outros
  • 27.
    Hadoop – ProjetosRelacionados ● Ambari: provisionamento, gerenciamento e monitoramento de clusters Hadoop ● Cassandra: banco de dados com escalabilidade linear e alta disponibilidade (nenhum ponto único de falha) ● HBase: banco de dados não relacional desenvolvido sobre o HDFS ● Hive: análise de dados através de linguagem SQL-like (HiveQL). Desenvolvido pelo Facebook e Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade Netflix
  • 28.
    Hadoop – ProjetosRelacionados ● Manout: biblioteca escalável para aprendizado de máquina ● Pig: análise de dados com linguagens de alto nível ● Spark: mapreduce de alto desempenho ● Tez: processamento de dados com grafos direcionados acíclicos ● ZooKeeper: coordenação e comunicação em grupo ● Giraph: processamento interativo de grafos Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 29.
    Hadoop – Ecossistema ● Commits por empresa: Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 30.
    Desafios Atuais ●Garantia de QoS em clusters Hadoop ● Controle e sintonia automática de parâmetros ● Elasticidade automática ● Mecanismos de alto nível (próximos ao negócio) para análise de dados Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 31.
    Conclusão ● Escalabilidadecomo requisito não-funcional primordial ● Foco na acomodação de falhas de hardware ● O MapReduce é interessante, mas limita o projeto e implementação dos jobs ● É necessário formação profissional na área de sistemas distribuídos, arquitetura de software e análise de desempenho ● Análise de BigData como diferencial competitivo nas organizações Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
  • 32.
    Obrigado ! SandroS. Andrade Instituto Federal de Educação, Ciência e Tecnologia (IFBa) Grupo de Pesquisa em Sistemas Distribuídos, Otimização, Redes e Tempo-Real (GSORT) sandroandrade@ifba.edu.br @andradesandro Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade