Arquiteturas, Tecnologias e Desafios para Análise de BigData
-
Upload
sandro-andrade -
Category
Software
-
view
201 -
download
4
description
Transcript of Arquiteturas, Tecnologias e Desafios para Análise de BigData
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
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
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
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
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
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● Filtering● Top Ten● Structured to Hierarchical● Reduce Side Join● Replicated Join● … muitos outros
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
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
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. 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