SlideShare una empresa de Scribd logo
1 de 68
Descargar para leer sin conexión
Cloud Computing:
                 What it is, DOs and DON'Ts

                                      Svet Ivantchev, eFaber
                                        Fourth Workshop on
                            Advanced Computing Techniques in the Microworld,
                                             April 2011


domingo 1 de mayo de 2011
Our plan for today

                            • What Is Cloud Computing?
                            • Enabling technologies
                            • Public vs Private Clouds
                            • Idea of MapReduce with two examples

domingo 1 de mayo de 2011
Our plan for tomorrow

               •      Create a HPC cluster with:

                     •      184 GB RAM

                     •      13 TB local disk space and 800 GB persistent storage

                     •      64 cores @ 2.9 GHz, Intel Nehalem = 268 ECUs
                            (~268 2007 1.2 GHz Xeons)

                     •      10 GB network connection between them




domingo 1 de mayo de 2011
(Kind of) Evolution

                   • Grid Computing
                   • Utility Computing
                   • Cloud Computing
                   • Software as a Service (SaaS)

domingo 1 de mayo de 2011
Grid Computing
       Grid computing is a term referring to the combination of
       computer resources from multiple administrative domains
        to reach a common goal. The grid can be thought of as a
         distributed system with non-interactive workloads that
                      involve a large number of files.




                                  http://en.wikipedia.org/wiki/Grid_computing

domingo 1 de mayo de 2011
Utility Computing

            Utility Computing is the packaging of computing
       resources, such as computation, storage and services, as a
       metered service similar to a traditional public utility (such
        as electricity, water, natural gas, or telephone network).




                                    http://en.wikipedia.org/wiki/Utility_computing

domingo 1 de mayo de 2011
Cloud Computing




                                      McKinsey & Co. Report
domingo 1 de mayo de 2011
Cloud Computing
        Cloud computing is a model for enabling convenient, on-
        demand network access to a shared pool of configurable
          computing resources (e.g., networks, servers, storage,
        applications, and services) that can be rapidly provisioned
        and released with minimal management effort or service
                           provider interaction.



                                                  NIST

domingo 1 de mayo de 2011
Cloud Computing

                     1. The illusion of infinite computing resources...
                     2. The elimination of an up-front commitment...
                         3. The ability to pay for use ... as needed.




                                                    UC Berkeley RAD Labs

domingo 1 de mayo de 2011
So, what it is?

                   • Pay-per-use
                   • Resources are abstracted (virtualized)
                   • Upscale and downscale on demand
                   • Self service interface (API included)

domingo 1 de mayo de 2011
Enabling technologies

                            • Virtualisation
                            • Virtualised Storage
                            • Web Services


domingo 1 de mayo de 2011
Virtualisation

                            • Xen
                            • KVM
                            • WMware
                            • more...

domingo 1 de mayo de 2011
Abstracted Storage

                            • Distributed File Systems; examples:
                             • Amazon S3
                             • RackSpace’s CloudFiles
                             • HDFS

domingo 1 de mayo de 2011
Stack

                              Software as a Service (SaaS)

                              Platform as a Service (PaaS)

                            Infrastructure as a Service (IaaS)

                                    Cloud Enabler(s)

                                       Hardware


domingo 1 de mayo de 2011
Public Cloud Services

                            • Amazon EC2
                            • RackSpace
                            • 100s more ...


domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
Amazon Web Services (AWS)




domingo 1 de mayo de 2011
AWS EC2 Prices

                   • on demand instances
                   • reserved instances
                   • spot instances


domingo 1 de mayo de 2011
AWS EC2 prices




domingo 1 de mayo de 2011
Spot Instances




domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
Private
                   • Eucalyptus
                   • OpenNebula
                   • Nimbus
                   • OpenStack

                   • Hadoop & friends
domingo 1 de mayo de 2011
Public or private?
                              Better mixed




domingo 1 de mayo de 2011
MapReduce


                   • High level vs low level languages
                   • Example: MPI/PVM vs MapReduce


domingo 1 de mayo de 2011
MRs “Hello world”
                                Unix-style
                     “en un lugar de la Mancha de cuyo nombre no quiero
                     acordarme no ha mucho tiempo que vivía un hidalgo ...”


      $ cat i.txt | tr ' ' 'n' | sort | uniq -c

                                 1 Mancha
                                 1 acordarme
                                 1 cuyo
                                 2 de
                                 ...

domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
Google Books
                • 129 000 000 books are publshed so far
                • 15 000 000 books scanned (1700-2010)
                • 5 000 000 classified and with metadata
                            Science,Vol. 331, no 6014, pp. 176-182 (Jan 14, 2011):




domingo 1 de mayo de 2011
http://ngrams.googlelabs.com/
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
MapReduce

                      map:        (k1, v1) ! list (k2, v2)

               reduce:       (k2, list(v2)) ! list (v2)




domingo 1 de mayo de 2011
MapReduce: Mapper
                            map(String key, String value):
                               // key: document name
                               // value: document contents
                               for each word w in value:
                                     EmitIntermediate(w, 1);



                                                               “en”, 1
                                                               “un”, 1
     “en un lugar de la Mancha de                              “lugar”, 1
     cuyo nombre no quiero acordarme                           “de”, 1
     no ha mucho tiempo que vivía un                           “la”, 1
     hidalgo”                                                  “Mancha”, 1
                                                               “de”, 1
                                                               ...
domingo 1 de mayo de 2011
MapReduce: Reducer
                            reduce(String key, Iterator values):
                               // key: a word
                               // values: a list of counts
                               result = 0;
                               for each v in values:
                                  result += v;
                               Emit(result);


                     “en”, [1]                          “en”, 1
                     “un”, [1,1]                        “un”, 2
                     “lugar”, [1]                       “lugar”, 1
                     “de”, [1]                          “de”, 1
                     ...                                ...

domingo 1 de mayo de 2011
Dean, J and Ghemawat, S, Comm. ACM,Vol 51, pp. 107--113, (2008)
domingo 1 de mayo de 2011
Our input
    $ ls -l donquijote_s?.txt
    -rw-r--r-- 1 svet staff       1037413 23 abr 18:26 donquijote_s1.txt
    -rw-r--r-- 1 svet staff       1099078 23 abr 18:22 donquijote_s2.txt



    $ head -6 donquijote_s1.txt

    El ingenioso hidalgo don Quijote de la Mancha

    TASA

    Yo, Juan Gallo de Andrada, escribano de Camara del Rey
    nuestro senor, de los que residen en su Consejo, certifico
    y doy fe que, habiendo visto por los senores del un libro




domingo 1 de mayo de 2011
Python Mapper
                     #!/usr/bin/python

                     import sys
                     import re

                     def main(argv):
                        line = sys.stdin.readline()
                        pattern = re.compile("[a-zA-Z][a-zA-Z0-9]*")
                        try:
                          while line:
                             for word in pattern.findall(line):
                               print "LongValueSum:" + word.lower() + "t" + "1"
                             line = sys.stdin.readline()
                        except "end of file":
                          return None
                     if __name__ == "__main__":
                        main(sys.argv)


domingo 1 de mayo de 2011
Test the mapper
                            $ cat donquijote_s1.txt | ./wsplit.py

                            LongValueSum:el          1
                            LongValueSum:ingenioso   1
                            LongValueSum:hidalgo     1
                            LongValueSum:don         1
                            LongValueSum:quijote     1
                            LongValueSum:de          1
                            LongValueSum:la          1
                            LongValueSum:mancha      1
                            LongValueSum:tasa        1
                            LongValueSum:yo          1
                            LongValueSum:juan        1
                            LongValueSum:gallo       1
                            LongValueSum:de          1
                            LongValueSum:andrada     1



domingo 1 de mayo de 2011
Preparing the S3




domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
Run




domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
Final result
                            $ awk '{print $2 " " $1}' part-00000 | sort -r -n

                            21477 que
                            18297 de
                            18189 y                  3352   su
                            10363 la                 2647   don
                            9824 a                   2623   del
                            9490 el                  2539   como
                            8243 en                  2345   me
                            6335 no                  2312   si
                            5079 se                  2284   mas
                            4748 los                 2207   mi
                            4202 con                 2175   quijote
                            3940 por                 2148   sancho
                            3468 las                 2142   es
                            3461 lo                  2077   yo
                            3398 le                  1938   un
                                                     1808   dijo
                                                     1740   al
                                                     1463   para
                                                     1400   porque

domingo 1 de mayo de 2011
CL alternative

                        $ elastic-mapreduce --create 
                              --stream 
                              --input s3n://mrbg/input 
                              --mapper s3://mrbg/prog/wsplit.py 
                              --output s3n://mgbr/output/run2



                        $ elastic-mapreduce --create




domingo 1 de mayo de 2011
MapReduce, ex 2




                                Pi = 4*M/N
domingo 1 de mayo de 2011
MapReduce: Mapper
                      #!/usr/bin/ruby

                      ARGF.each do |line|
                        mcsteps = line.strip
                        unless mcsteps.length == 0
                          begin
                            inside = 0
                            mcsteps.to_i.times do
                                x, y = rand, rand
                                inside += 1 if Math.hypot(x,y) < 1.0
                            end
                            puts inside.to_s
                          rescue
                            # couldn't parse mc steps
                          end
                        end
                      end

domingo 1 de mayo de 2011
Pi

                            $ cat mcs.txt
                            1000

                            $ cat mcs.txt | ./mc-pi-mr.rb
                            776


               ... create more mcs.txts:
                            200_000_000
                            200_000_000
domingo 1 de mayo de 2011
MapReduce: Reducer


                            #!/usr/bin/ruby

                            count = 0
                            ARGF.each do |line|
                              count += line.to_i
                            end

                            puts "#{count} points inside"




domingo 1 de mayo de 2011
Prepare the EMR

                   • upload mcsnn.txt to mrbg/mcinput/
                   • upload mc-mapper.rb to mrbg/prog/
                   • upload mc-reducer.rb to mrbg/prog/


domingo 1 de mayo de 2011
domingo 1 de mayo de 2011
est: 109955955/140000000*4=3.14159871
domingo 1 de mayo de 2011
• Hadoop Common
        • HDFS
        • MapReduce

domingo 1 de mayo de 2011
Thank you



                            Q &A

domingo 1 de mayo de 2011

Más contenido relacionado

Similar a Cloud Computing: What it is, DOs and DON'Ts

Cloud Computing: Just Do It
Cloud Computing: Just Do ItCloud Computing: Just Do It
Cloud Computing: Just Do It
Svet Ivantchev
 
Planificando la actividad de contribución a comunidades de software libre des...
Planificando la actividad de contribución a comunidades de software libre des...Planificando la actividad de contribución a comunidades de software libre des...
Planificando la actividad de contribución a comunidades de software libre des...
betabeers
 
Primer ensayo deyanira
Primer ensayo deyaniraPrimer ensayo deyanira
Primer ensayo deyanira
Jose Garcia
 

Similar a Cloud Computing: What it is, DOs and DON'Ts (20)

1-Unidad 1: Introducción a la Plataforma .NET-1.1 Conceptos, características ...
1-Unidad 1: Introducción a la Plataforma .NET-1.1 Conceptos, características ...1-Unidad 1: Introducción a la Plataforma .NET-1.1 Conceptos, características ...
1-Unidad 1: Introducción a la Plataforma .NET-1.1 Conceptos, características ...
 
Creating Productive Workshops in Scary Situations
Creating Productive Workshops in Scary SituationsCreating Productive Workshops in Scary Situations
Creating Productive Workshops in Scary Situations
 
Oracle
Oracle Oracle
Oracle
 
1-Unidad 1. Introducción a la Plataforma .NET
1-Unidad 1. Introducción a la Plataforma .NET1-Unidad 1. Introducción a la Plataforma .NET
1-Unidad 1. Introducción a la Plataforma .NET
 
Slides upf2011 sesión #4
Slides upf2011 sesión #4Slides upf2011 sesión #4
Slides upf2011 sesión #4
 
Unidad_1.pptx
Unidad_1.pptxUnidad_1.pptx
Unidad_1.pptx
 
7984
7984 7984
7984
 
Cloud Computing: Just Do It
Cloud Computing: Just Do ItCloud Computing: Just Do It
Cloud Computing: Just Do It
 
Evolucion dela web
Evolucion dela webEvolucion dela web
Evolucion dela web
 
COMPUTACIÓN DISTRIBUIDA Y SU APLICACIÓN TECNOLÓGICA.ppt
COMPUTACIÓN DISTRIBUIDA Y SU APLICACIÓN TECNOLÓGICA.pptCOMPUTACIÓN DISTRIBUIDA Y SU APLICACIÓN TECNOLÓGICA.ppt
COMPUTACIÓN DISTRIBUIDA Y SU APLICACIÓN TECNOLÓGICA.ppt
 
Computacion en la nube
Computacion en la nubeComputacion en la nube
Computacion en la nube
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 
Red de redes
Red de redes Red de redes
Red de redes
 
Planificando la actividad de contribución a comunidades de software libre des...
Planificando la actividad de contribución a comunidades de software libre des...Planificando la actividad de contribución a comunidades de software libre des...
Planificando la actividad de contribución a comunidades de software libre des...
 
Ember.js
Ember.jsEmber.js
Ember.js
 
Web 2 - 4 - Metaweb
Web 2 - 4 - MetawebWeb 2 - 4 - Metaweb
Web 2 - 4 - Metaweb
 
Modernizando el rol de un Data Lake en una arquitectura Data Fabric
Modernizando el rol de un Data Lake en una arquitectura Data FabricModernizando el rol de un Data Lake en una arquitectura Data Fabric
Modernizando el rol de un Data Lake en una arquitectura Data Fabric
 
PaaS: Beanstalk - CloudHispano
PaaS: Beanstalk - CloudHispanoPaaS: Beanstalk - CloudHispano
PaaS: Beanstalk - CloudHispano
 
Creando un único punto de acceso de úsqueda en una Biblioteca Virtual. La exp...
Creando un único punto de acceso de úsqueda en una Biblioteca Virtual. La exp...Creando un único punto de acceso de úsqueda en una Biblioteca Virtual. La exp...
Creando un único punto de acceso de úsqueda en una Biblioteca Virtual. La exp...
 
Primer ensayo deyanira
Primer ensayo deyaniraPrimer ensayo deyanira
Primer ensayo deyanira
 

Más de Svet Ivantchev

Learning Analytics and Online Learning: New Oportunities?
Learning Analytics and Online Learning: New Oportunities?Learning Analytics and Online Learning: New Oportunities?
Learning Analytics and Online Learning: New Oportunities?
Svet Ivantchev
 
Libros electrónicos IV: ePub 2
Libros electrónicos IV: ePub 2Libros electrónicos IV: ePub 2
Libros electrónicos IV: ePub 2
Svet Ivantchev
 
Libros electrónicos III
Libros electrónicos IIILibros electrónicos III
Libros electrónicos III
Svet Ivantchev
 
Libros electrónicos II - ePub
Libros electrónicos II - ePubLibros electrónicos II - ePub
Libros electrónicos II - ePub
Svet Ivantchev
 
Libros electrónicos I
Libros electrónicos ILibros electrónicos I
Libros electrónicos I
Svet Ivantchev
 
Los mitos de la innovación
Los mitos de la innovaciónLos mitos de la innovación
Los mitos de la innovación
Svet Ivantchev
 

Más de Svet Ivantchev (20)

Machne Learning and Human Learning (2013).
Machne Learning and Human Learning (2013).Machne Learning and Human Learning (2013).
Machne Learning and Human Learning (2013).
 
Big Data: 
Some Questions in its Use in Applied Economics (2017)
Big Data: 
Some Questions in its Use in Applied Economics (2017)Big Data: 
Some Questions in its Use in Applied Economics (2017)
Big Data: 
Some Questions in its Use in Applied Economics (2017)
 
Introducción a Elixir
Introducción a ElixirIntroducción a Elixir
Introducción a Elixir
 
Gaztea Tech Robotica 2016
Gaztea Tech Robotica 2016Gaztea Tech Robotica 2016
Gaztea Tech Robotica 2016
 
Gaztea Tech 2015: 4. GT Drawbot Control
Gaztea Tech 2015: 4. GT Drawbot ControlGaztea Tech 2015: 4. GT Drawbot Control
Gaztea Tech 2015: 4. GT Drawbot Control
 
Gaztea Tech 2015: 3. Processing y Firmata
Gaztea Tech 2015: 3. Processing y FirmataGaztea Tech 2015: 3. Processing y Firmata
Gaztea Tech 2015: 3. Processing y Firmata
 
Gaztea Tech 2015: 2. El GT DrawBot
Gaztea Tech 2015: 2. El GT DrawBotGaztea Tech 2015: 2. El GT DrawBot
Gaztea Tech 2015: 2. El GT DrawBot
 
Gaztea Tech 2015: 1. Introducción al Arduino
Gaztea Tech 2015: 1. Introducción al ArduinoGaztea Tech 2015: 1. Introducción al Arduino
Gaztea Tech 2015: 1. Introducción al Arduino
 
Learning Analytics and Online Learning: New Oportunities?
Learning Analytics and Online Learning: New Oportunities?Learning Analytics and Online Learning: New Oportunities?
Learning Analytics and Online Learning: New Oportunities?
 
How Machine Learning and Big Data can Help Us with the Human Learning
How Machine Learning and Big Data can Help Us with the Human LearningHow Machine Learning and Big Data can Help Us with the Human Learning
How Machine Learning and Big Data can Help Us with the Human Learning
 
Vienen los Drones!
Vienen los Drones!Vienen los Drones!
Vienen los Drones!
 
Data Science
Data ScienceData Science
Data Science
 
Libros electrónicos IV: ePub 2
Libros electrónicos IV: ePub 2Libros electrónicos IV: ePub 2
Libros electrónicos IV: ePub 2
 
Libros electrónicos III
Libros electrónicos IIILibros electrónicos III
Libros electrónicos III
 
Libros electrónicos II - ePub
Libros electrónicos II - ePubLibros electrónicos II - ePub
Libros electrónicos II - ePub
 
Libros electrónicos I
Libros electrónicos ILibros electrónicos I
Libros electrónicos I
 
BigData
BigDataBigData
BigData
 
Los mitos de la innovación
Los mitos de la innovaciónLos mitos de la innovación
Los mitos de la innovación
 
eFaber en 5 minutos
eFaber en 5 minutoseFaber en 5 minutos
eFaber en 5 minutos
 
RoR y eLearning 2.0
RoR y eLearning 2.0RoR y eLearning 2.0
RoR y eLearning 2.0
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 

Cloud Computing: What it is, DOs and DON'Ts

  • 1. Cloud Computing: What it is, DOs and DON'Ts Svet Ivantchev, eFaber Fourth Workshop on Advanced Computing Techniques in the Microworld, April 2011 domingo 1 de mayo de 2011
  • 2. Our plan for today • What Is Cloud Computing? • Enabling technologies • Public vs Private Clouds • Idea of MapReduce with two examples domingo 1 de mayo de 2011
  • 3. Our plan for tomorrow • Create a HPC cluster with: • 184 GB RAM • 13 TB local disk space and 800 GB persistent storage • 64 cores @ 2.9 GHz, Intel Nehalem = 268 ECUs (~268 2007 1.2 GHz Xeons) • 10 GB network connection between them domingo 1 de mayo de 2011
  • 4. (Kind of) Evolution • Grid Computing • Utility Computing • Cloud Computing • Software as a Service (SaaS) domingo 1 de mayo de 2011
  • 5. Grid Computing Grid computing is a term referring to the combination of computer resources from multiple administrative domains to reach a common goal. The grid can be thought of as a distributed system with non-interactive workloads that involve a large number of files. http://en.wikipedia.org/wiki/Grid_computing domingo 1 de mayo de 2011
  • 6. Utility Computing Utility Computing is the packaging of computing resources, such as computation, storage and services, as a metered service similar to a traditional public utility (such as electricity, water, natural gas, or telephone network). http://en.wikipedia.org/wiki/Utility_computing domingo 1 de mayo de 2011
  • 7. Cloud Computing McKinsey & Co. Report domingo 1 de mayo de 2011
  • 8. Cloud Computing Cloud computing is a model for enabling convenient, on- demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. NIST domingo 1 de mayo de 2011
  • 9. Cloud Computing 1. The illusion of infinite computing resources... 2. The elimination of an up-front commitment... 3. The ability to pay for use ... as needed. UC Berkeley RAD Labs domingo 1 de mayo de 2011
  • 10. So, what it is? • Pay-per-use • Resources are abstracted (virtualized) • Upscale and downscale on demand • Self service interface (API included) domingo 1 de mayo de 2011
  • 11. Enabling technologies • Virtualisation • Virtualised Storage • Web Services domingo 1 de mayo de 2011
  • 12. Virtualisation • Xen • KVM • WMware • more... domingo 1 de mayo de 2011
  • 13. Abstracted Storage • Distributed File Systems; examples: • Amazon S3 • RackSpace’s CloudFiles • HDFS domingo 1 de mayo de 2011
  • 14. Stack Software as a Service (SaaS) Platform as a Service (PaaS) Infrastructure as a Service (IaaS) Cloud Enabler(s) Hardware domingo 1 de mayo de 2011
  • 15. Public Cloud Services • Amazon EC2 • RackSpace • 100s more ... domingo 1 de mayo de 2011
  • 16. domingo 1 de mayo de 2011
  • 17. Amazon Web Services (AWS) domingo 1 de mayo de 2011
  • 18. AWS EC2 Prices • on demand instances • reserved instances • spot instances domingo 1 de mayo de 2011
  • 19. AWS EC2 prices domingo 1 de mayo de 2011
  • 20. Spot Instances domingo 1 de mayo de 2011
  • 21. domingo 1 de mayo de 2011
  • 22. domingo 1 de mayo de 2011
  • 23. domingo 1 de mayo de 2011
  • 24. domingo 1 de mayo de 2011
  • 25. Private • Eucalyptus • OpenNebula • Nimbus • OpenStack • Hadoop & friends domingo 1 de mayo de 2011
  • 26. Public or private? Better mixed domingo 1 de mayo de 2011
  • 27. MapReduce • High level vs low level languages • Example: MPI/PVM vs MapReduce domingo 1 de mayo de 2011
  • 28. MRs “Hello world” Unix-style “en un lugar de la Mancha de cuyo nombre no quiero acordarme no ha mucho tiempo que vivía un hidalgo ...” $ cat i.txt | tr ' ' 'n' | sort | uniq -c 1 Mancha 1 acordarme 1 cuyo 2 de ... domingo 1 de mayo de 2011
  • 29. domingo 1 de mayo de 2011
  • 30. Google Books • 129 000 000 books are publshed so far • 15 000 000 books scanned (1700-2010) • 5 000 000 classified and with metadata Science,Vol. 331, no 6014, pp. 176-182 (Jan 14, 2011): domingo 1 de mayo de 2011
  • 32. domingo 1 de mayo de 2011
  • 33. MapReduce map: (k1, v1) ! list (k2, v2) reduce: (k2, list(v2)) ! list (v2) domingo 1 de mayo de 2011
  • 34. MapReduce: Mapper map(String key, String value): // key: document name // value: document contents for each word w in value: EmitIntermediate(w, 1); “en”, 1 “un”, 1 “en un lugar de la Mancha de “lugar”, 1 cuyo nombre no quiero acordarme “de”, 1 no ha mucho tiempo que vivía un “la”, 1 hidalgo” “Mancha”, 1 “de”, 1 ... domingo 1 de mayo de 2011
  • 35. MapReduce: Reducer reduce(String key, Iterator values): // key: a word // values: a list of counts result = 0; for each v in values: result += v; Emit(result); “en”, [1] “en”, 1 “un”, [1,1] “un”, 2 “lugar”, [1] “lugar”, 1 “de”, [1] “de”, 1 ... ... domingo 1 de mayo de 2011
  • 36. Dean, J and Ghemawat, S, Comm. ACM,Vol 51, pp. 107--113, (2008) domingo 1 de mayo de 2011
  • 37. Our input $ ls -l donquijote_s?.txt -rw-r--r-- 1 svet staff 1037413 23 abr 18:26 donquijote_s1.txt -rw-r--r-- 1 svet staff 1099078 23 abr 18:22 donquijote_s2.txt $ head -6 donquijote_s1.txt El ingenioso hidalgo don Quijote de la Mancha TASA Yo, Juan Gallo de Andrada, escribano de Camara del Rey nuestro senor, de los que residen en su Consejo, certifico y doy fe que, habiendo visto por los senores del un libro domingo 1 de mayo de 2011
  • 38. Python Mapper #!/usr/bin/python import sys import re def main(argv): line = sys.stdin.readline() pattern = re.compile("[a-zA-Z][a-zA-Z0-9]*") try: while line: for word in pattern.findall(line): print "LongValueSum:" + word.lower() + "t" + "1" line = sys.stdin.readline() except "end of file": return None if __name__ == "__main__": main(sys.argv) domingo 1 de mayo de 2011
  • 39. Test the mapper $ cat donquijote_s1.txt | ./wsplit.py LongValueSum:el 1 LongValueSum:ingenioso 1 LongValueSum:hidalgo 1 LongValueSum:don 1 LongValueSum:quijote 1 LongValueSum:de 1 LongValueSum:la 1 LongValueSum:mancha 1 LongValueSum:tasa 1 LongValueSum:yo 1 LongValueSum:juan 1 LongValueSum:gallo 1 LongValueSum:de 1 LongValueSum:andrada 1 domingo 1 de mayo de 2011
  • 40. Preparing the S3 domingo 1 de mayo de 2011
  • 41. domingo 1 de mayo de 2011
  • 42. domingo 1 de mayo de 2011
  • 43. domingo 1 de mayo de 2011
  • 44. Run domingo 1 de mayo de 2011
  • 45. domingo 1 de mayo de 2011
  • 46. domingo 1 de mayo de 2011
  • 47. domingo 1 de mayo de 2011
  • 48. domingo 1 de mayo de 2011
  • 49. domingo 1 de mayo de 2011
  • 50. domingo 1 de mayo de 2011
  • 51. domingo 1 de mayo de 2011
  • 52. domingo 1 de mayo de 2011
  • 53. domingo 1 de mayo de 2011
  • 54. domingo 1 de mayo de 2011
  • 55. domingo 1 de mayo de 2011
  • 56. domingo 1 de mayo de 2011
  • 57. domingo 1 de mayo de 2011
  • 58. Final result $ awk '{print $2 " " $1}' part-00000 | sort -r -n 21477 que 18297 de 18189 y 3352 su 10363 la 2647 don 9824 a 2623 del 9490 el 2539 como 8243 en 2345 me 6335 no 2312 si 5079 se 2284 mas 4748 los 2207 mi 4202 con 2175 quijote 3940 por 2148 sancho 3468 las 2142 es 3461 lo 2077 yo 3398 le 1938 un 1808 dijo 1740 al 1463 para 1400 porque domingo 1 de mayo de 2011
  • 59. CL alternative $ elastic-mapreduce --create --stream --input s3n://mrbg/input --mapper s3://mrbg/prog/wsplit.py --output s3n://mgbr/output/run2 $ elastic-mapreduce --create domingo 1 de mayo de 2011
  • 60. MapReduce, ex 2 Pi = 4*M/N domingo 1 de mayo de 2011
  • 61. MapReduce: Mapper #!/usr/bin/ruby ARGF.each do |line| mcsteps = line.strip unless mcsteps.length == 0 begin inside = 0 mcsteps.to_i.times do x, y = rand, rand inside += 1 if Math.hypot(x,y) < 1.0 end puts inside.to_s rescue # couldn't parse mc steps end end end domingo 1 de mayo de 2011
  • 62. Pi $ cat mcs.txt 1000 $ cat mcs.txt | ./mc-pi-mr.rb 776 ... create more mcs.txts: 200_000_000 200_000_000 domingo 1 de mayo de 2011
  • 63. MapReduce: Reducer #!/usr/bin/ruby count = 0 ARGF.each do |line| count += line.to_i end puts "#{count} points inside" domingo 1 de mayo de 2011
  • 64. Prepare the EMR • upload mcsnn.txt to mrbg/mcinput/ • upload mc-mapper.rb to mrbg/prog/ • upload mc-reducer.rb to mrbg/prog/ domingo 1 de mayo de 2011
  • 65. domingo 1 de mayo de 2011
  • 67. • Hadoop Common • HDFS • MapReduce domingo 1 de mayo de 2011
  • 68. Thank you Q &A domingo 1 de mayo de 2011