Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
MC855 - Projeto em Sistemas de ComputacaoExplorando o Apache Hadoop e o Apache Spark
Islene Calciolari Garcia
Instituto de Computacao - Unicamp
Segundo Semestre de 2017
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Sumario
1 Introducao
2 Objetivos para MC855
3 Conceitos basicos
4 Experiencias anteriores
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Explorando o Apache Hadoop
Sistema real! Software livre!
Big Data Volume, Velocity, Variety, Veracity
Computacao distribuıda escalavel e confiavel
Altamente relevante: usado por empresas como Amazon,Facebook e Yahoo! Veja mais em Who uses Hadoop?
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Apache Hadoop EcosystemUm ecossistema em evolucao
Ref: Hadoop Essentials, Swizec Teller
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Spark Stack
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Explorando o Apache Hadoop
Dimensao de usuario:
MapReduceOutros sistemas: HBase, ZooKeeper, Hive, Pig
Dimensao de desenvolvedor:
Como contribuirJira
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Criterio de avaliacao
Fase 1 Fase 2
Projeto 1 17 ou 22/ago 29 ou 31/agoProjeto 2 14 ou 19/set 26 ou 28/setProjeto 3 19 ou 24/out 26 ou 31/outProjeto 4 16 ou 21/nov 28 ou 30/nov
Nota projeto: fase 1 com peso 3 e fase 2 com peso 7
Media final: 4 projetos com pesos iguais
Trabalho individual ou em grupo (maximo 4 pessoas)
Nao havera exame final
Em caso de fraude, todos os envolvidos ficarao com media final igual a 0
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Sobre a escolha dos temas...
Projetos podem ser:
estudo/implementacao de aplicacoes MapReduce ou Sparkestudo de um subsistemas do Hadoop (como Pig, Mahout,Zookeeper);analise de issues;
Pelo menos dois projetos deverao ter experimentacao pratica;
Pelo menos dois projetos deverao estar na dimensao dedesenvolvimento;
Grupos poderao dar continuidade a projetos sobre um mesmotema desde que haja um aprofundamento significativo doestudo ou dos resultados obtidos.
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Sobre a escolha dos temas...Sugestao para quem nao conhece Hadoop nem Spark...
Projeto 1 Experimento com MapReduceProjeto 2 Experimento com Apache SparkProjeto 3 Analise de issue tipo bugProjeto 4 Analise de issue tipo umbrella
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Sobre a avaliacao dos projetos...
Fase 1
Escolha do temaPlano de trabalhoTestes iniciaisRegistro no MoodleApresentacao para a professora
Fase 2
Apresentacao de seminarios para a turma, incluindo contexto eresultadosTodos os integrantes deverao participar e apresentar conteudo.Os slides deverao conter referencias e informacoes quepermitam avaliar o trabalho desempenhado pelo grupo.Todo codigo desenvolvido devera ser entregue para avaliacao.
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Historia do projeto Hadoop
2002-2004: Doug Cutting e Mike Cafarella trabalham noprojeto Nutch.
Nutch deveria indexar a web e permitir buscasAlternativa livre ao Google
2003-2004: Google publica artigo sobre o Google File Systeme MapReduce
2004: Doug Cutting adiciona o DFS e MapReduce ao projetoNutch
2006: Doug Cutting comeca a trabalhar no Yahoo!
2008: Hadoop se torna um projeto Apache
2013: Yarn (Hadoop 2)
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
HDFS
Ref: http://hadoop.apache.org
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
MapReduce
Ref: Tom White
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Sugestao: experimento com o MapReduce
Instalar o Hadoop (Single Node Cluster)
Rodar um exemplo tipo word count
Pesquisar uma aplicacao mais elaborada (pode ser doconjunto disponıvel no diretorio de exemplos)
Explicar abordagem e mostrar codigo para a turma
Documentacao do experimento (github, bitbucket, moodle)
Mais detalhes nas proximas aulas.
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Sugestao: experimento com o Apache Spark
Estruturas em memoria
Melhor desempenho em relacao ao Hadoop MapReduce
Pesquisar aplicacao e comparar com abordagem anterior
Explicar abordagem e mostrar codigo para a turma
Documentacao do experimento (github, bitbucket, moodle)
Mais detalhes nas proximas aulas.
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Sugestao: Pig, Hive, HBase, Mahout, ...
Dimensao de usuario
Como este subsistema se encaixa no ecossistema
Pesquisar aplicacao e comparar com abordagem anterior
Explicar abordagem e mostrar codigo para a turma
Documentacao do experimento (github, bitbucket, moodle)
Sem mais detalhes... :-(
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Estudo de entrada no JIRA: Exemplos
HDFS 6804 race condition between transferring block andappending block causes “Unexpected checksum mismatchexception”
MAPREDUCE-4584 Umbrella: Preemption and restart ofMapReduce tasks
Uma entrada marcada como Umbrella envolve variosproblemas menoresRelacionadas ao desenvolvimento de novas funcionalidades
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Analise de entrada no JIRA: Avaliacao
apresentacao no laboratorio do codigo e da evolucao do grupocom relacao ao problema:
se for um bug, conseguiram reproduzir?o grupo e capaz de dar alguma sugestao/colaboracao?
apresentacao para a turma de seminario com slides
descricao do problemaresumo das discussoes na issueresumo dos resultados obtidos
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Dicas para escolher“Professora, voce vai dar uma lista com topicos selecionados?”
A quanto tempo a issue esta aberta?
Quem reportou o problema ou melhoria?
A comunidade deu algum retorno?
Houve discussao?
Existe possibilidade de contribuicao?
Se a issue estiver fechada? Valeria pelo estudo do processo,mas as chances de contribuicao sao mınimas...
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
E se a issue ja tiver um patch disponıvel?
Otimo!
O patch resolve realmente o problema?
Esta atualizado?
Estudar o processo de um patch tambem e interessante
E se um patch aparecer durante a analise?
o grupo pode escolher outra issue (e isso ja aconteceu!!!)o grupo pode analisar o patch e verificar se teria seguido omesmo caminho...
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Experiencia com o ZooKeeper
Servico de coordenacao
Turmas: 2s2010, verao-2011, 1s2011, verao-2013
Inspiracao em temas para o Google Summer of Code
Cluster de tamanho dinamico
Receitas
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
A primeira contribuicao! (2011)
Turma pequena (quase todos tinha cursado no verao)
Ainda as receitas do ZooKeeper
Envio de patch
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
E o retorno da primeira contribuicao?
Um mes depois...
Mais de um ano depois
Patch seria combinado com outro e incluıdoGrupo comemorou :-)
O bug continua em aberto...
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Kazoo (2013)
Comunidade ZooKeeper demora para dar retorno?
Netflix apoiou o desenvolvimento do Curator!
Kazoo e uma interface em Python para facilitar o uso doZooKeeper
Comunidade mais receptiva!
Aluno de mestrado contribuiu e seu patch foi aceito!
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
E se formos completamente ignorados?
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
A melhor experiencia
Bug simples
Envio de patch e retorno rapido da comunidade
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
A melhor experiencia
Uma surpresa
Mais orientacoes da comunidade e
final feliz! :-)
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Outras experiencias...
A issue mais simples: HDFS-9121
Um bug ja resolvido HDFS-8312?
Outro bug resolvido: HDFS-9896 Nice report!
As vezes a comunidade da bons conselhos:MAPREDUCE-6487
As vezes nem tanto... MAPREDUCE-6467
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Ainda sobre a escolha das issues
Contribuir para o projeto Hadoop nao e o objetivo principal dadisciplina...
Escolham temas adequados ao perfil de cada grupo:
alguns alunos escolhem temas relacionados aotrabalho/pesquisaalguns grupos gostam de temas complexos (ex. ErasureCoding)outros gostam de explorar problemas sem solucao (Won’tfix!)
Happy Hacking!
Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores
Referencias
Site do Apache Hadoop: http://hadoop.apache.org/
Hadoop The Definitive Guide, 4th Edition, Tom White