Arquiteturas, Tecnologias e Desafios para Análise de BigData
-
Upload
sandro-andrade -
Category
Software
-
view
203 -
download
4
description
Transcript of Arquiteturas, Tecnologias e Desafios para Análise de BigData
![Page 1: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/1.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Sandro S. AndradeInstituto Federal de Educação, Ciência e Tecnologia (IFBa)Grupo de Pesquisa em Sistemas Distribuídos, Otimização,
Redes e Tempo-Real (GSORT)
[email protected]@andradesandro
![Page 2: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/2.jpg)
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
![Page 3: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/3.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Motivação
![Page 4: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/4.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Motivação
![Page 5: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/5.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Motivação
![Page 6: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/6.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Motivação
![Page 7: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/7.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Motivação
● 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
![Page 8: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/8.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
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
![Page 9: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/9.jpg)
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
![Page 10: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/10.jpg)
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
![Page 11: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/11.jpg)
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
![Page 12: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/12.jpg)
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
![Page 13: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/13.jpg)
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
![Page 14: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/14.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O MapReduce
● Visão geral do MapReduce:
![Page 15: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/15.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O MapReduce
● Visão geral do MapReduce – exemplo de job:
![Page 16: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/16.jpg)
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/
![Page 17: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/17.jpg)
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
![Page 18: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/18.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O Hadoop
● Arquitetura do HDFS:
![Page 19: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/19.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O Hadoop
● Arquitetura do YARN:
![Page 20: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/20.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O Hadoop
● Arquitetura do YARN:
![Page 21: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/21.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
O Hadoop
● Arquitetura do YARN:
![Page 22: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/22.jpg)
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
![Page 23: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/23.jpg)
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); }
![Page 24: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/24.jpg)
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); } } }
![Page 25: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/25.jpg)
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); } }
![Page 26: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/26.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Design Patterns para MapReduce
● Numerical Summarizations● Inverted Index Summarizations● Counting with Counters● Filtering● Top Ten● Structured to Hierarchical● Reduce Side Join● Replicated Join● … muitos outros
![Page 27: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/27.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
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 Netflix
![Page 28: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/28.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
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
![Page 29: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/29.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Hadoop – Ecossistema
● Commits por empresa:
![Page 30: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/30.jpg)
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
![Page 31: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/31.jpg)
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
![Page 32: Arquiteturas, Tecnologias e Desafios para Análise de BigData](https://reader036.fdocumentos.com/reader036/viewer/2022081400/548311ec5906b59e158b4628/html5/thumbnails/32.jpg)
Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade
Obrigado !
Sandro S. AndradeInstituto Federal de Educação, Ciência e Tecnologia (IFBa)Grupo de Pesquisa em Sistemas Distribuídos, Otimização,
Redes e Tempo-Real (GSORT)
[email protected]@andradesandro