30
Introdu¸c˜ ao Objetivos para MC855 Conceitos b´ asicos Experiˆ encias anteriores MC855 - Projeto em Sistemas de Computa¸c˜ ao Explorando o Apache Hadoop e o Apache Spark Islene Calciolari Garcia Instituto de Computa¸c˜ ao - Unicamp Segundo Semestre de 2017

MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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

Page 2: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores

Sumario

1 Introducao

2 Objetivos para MC855

3 Conceitos basicos

4 Experiencias anteriores

Page 3: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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?

Page 4: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores

Apache Hadoop EcosystemUm ecossistema em evolucao

Ref: Hadoop Essentials, Swizec Teller

Page 5: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores

Spark Stack

Page 6: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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

Page 7: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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

Page 8: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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.

Page 9: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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

Page 10: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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.

Page 11: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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)

Page 12: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores

HDFS

Ref: http://hadoop.apache.org

Page 13: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores

MapReduce

Ref: Tom White

Page 14: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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.

Page 15: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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.

Page 16: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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... :-(

Page 17: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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

Page 18: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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

Page 19: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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...

Page 20: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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...

Page 21: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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

Page 22: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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

Page 23: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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...

Page 24: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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!

Page 25: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores

E se formos completamente ignorados?

Page 26: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores

A melhor experiencia

Bug simples

Envio de patch e retorno rapido da comunidade

Page 27: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

Introducao Objetivos para MC855 Conceitos basicos Experiencias anteriores

A melhor experiencia

Uma surpresa

Mais orientacoes da comunidade e

final feliz! :-)

Page 28: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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

Page 29: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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!

Page 30: MC855 - Projeto em Sistemas de Computa˘c~aoislene/2s2017-mc855/introducao.pdf · Ref: Hadoop Essentials, Swizec Teller Introdu˘c~aoObjetivos para MC855Conceitos b asicosExperi^encias

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