Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Hadoop: MapReduce para procesar grandes cantidades de datos

4,339 views

Published on

Overview of the Apache Hadoop project in Spanish.

Published in: Technology
  • Login to see the comments

  • Be the first to like this

Hadoop: MapReduce para procesar grandes cantidades de datos

  1. 1. Hadoop<br />MapReducepara procesar grandes cantidades dedatos<br />Raúl Ochoa<br />
  2. 2. Antecedentes<br />
  3. 3. Antecedentes<br />Sistemas Distribuidos<br />
  4. 4. Antecedentes<br />Sistemas Distribuidos<br />Programación Funcional<br />
  5. 5. Antecedentes<br />Sistemas Distribuidos<br />Programación Funcional<br />Álgebra<br />
  6. 6. Antecedentes<br />Sistemas Distribuidos<br />Programación Funcional<br />Álgebra<br />Java<br />
  7. 7. Antecedentes<br />Sistemas Distribuidos<br />Programación Funcional<br />Álgebra<br />Java<br />Google<br />
  8. 8. Antecedentes<br />Sistemas Distribuidos<br />Programación Funcional<br />Álgebra<br />Java<br />Google<br />
  9. 9. Antecedentes<br />Sistemas Distribuidos<br />Programación Funcional<br />Álgebra<br />Java<br />Google<br />Crédito de Libre Elección<br />
  10. 10. Antecedentes<br />Sistemas Distribuidos<br />Programación Funcional<br />Álgebra<br />Java<br />Google<br />Crédito de Libre Elección<br />
  11. 11. Contenidos<br />Introducción a Hadoop<br />MapReduce<br />HadoopDistributed File System<br />MapReduce + HDFS<br />Subproyectos<br />Demo<br />
  12. 12. Contenidos<br />Introducción a Hadoop<br />MapReduce<br />HadoopDistributed File System<br />MapReduce + HDFS<br />Subproyectos<br />Demo<br />
  13. 13. Introducción<br />
  14. 14. Introducción<br />Objetivos<br />Base<br />Características<br />Historia<br />Powered by<br />Comparación con otros sistemas<br />
  15. 15. Objetivos<br />Open Source<br />Computación distribuida<br />Procesar grandes cantidades de datos<br />
  16. 16. Objetivos<br />Open Source<br />Computación distribuida<br />Procesar grandes cantidades de datos<br />
  17. 17. Objetivos<br />Open Source<br />Computación distribuida<br />Procesar grandes cantidades de datos<br />
  18. 18. Base<br />MapReduce<br />GFS<br />
  19. 19. Características<br />Escalable<br />Económico<br />Eficiente<br />Fiable<br />
  20. 20. Características<br />Escalable<br />Económico<br />Eficiente<br />Fiable<br />
  21. 21. Características<br />Escalable<br />Económico<br />Eficiente<br />Fiable<br />
  22. 22. Características<br />Escalable<br />Económico<br />Eficiente<br />Fiable<br />
  23. 23. Historia<br />Creador: Doug Cutting<br />2002-2004: Nutch<br />2004-2006: GFS & MapReducePapers<br />2006-2008: Yahoo!<br />
  24. 24. Historia<br />Creador: Doug Cutting<br />2002-2004: Nutch<br />2004-2006: GFS & MapReducePapers<br />2006-2008: Yahoo!<br />
  25. 25. Historia<br />Creador: Doug Cutting<br />2002-2004: Nutch<br />2004-2006: GFS & MapReducePapers<br />2006-2008: Yahoo!<br />
  26. 26. Historia<br />Creador: Doug Cutting<br />2002-2004: Nutch<br />2004-2006: GFS & MapReducePapers<br />2006-2008: Yahoo!<br />
  27. 27. Powered by Hadoop<br />http://wiki.apache.org/hadoop/PoweredBy<br />
  28. 28. Comparación<br />RDBMS<br />GridComputing<br />SETI@home et al.<br />
  29. 29. Comparación<br />RDBMS<br />GridComputing<br />SETI@home et al.<br />
  30. 30. Comparación<br />RDBMS<br />GridComputing<br />SETI@home et al.<br />
  31. 31. Contenidos<br />Introducción a Hadoop<br />MapReduce<br />HadoopDistributed File System<br />MapReduce + HDFS<br />Subproyectos<br />Demo<br />
  32. 32. MapReduce<br />
  33. 33. MapReduce<br />Computación distribuida<br />
  34. 34.
  35. 35. DEAD LOCK<br />
  36. 36. MapReduce<br />Computación distribuida<br />Programación Funcional<br />
  37. 37. MapReduce<br />Computación distribuida<br />Programación Funcional<br />Funciones Map y Reduce<br />
  38. 38. Map<br />Input<br />map()<br />Output<br />
  39. 39. Reduce<br />Input<br />reduce()<br />Output<br />
  40. 40. MapReduce<br />Computación distribuida<br />Programación Funcional<br />Funciones Map y Reduce<br />map() y reduce() en Python<br />
  41. 41. Contenidos<br />Introducción a Hadoop<br />MapReduce<br />HadoopDistributed File System<br />MapReduce + HDFS<br />Subproyectos<br />Demo<br />
  42. 42. HDFS<br />
  43. 43. HDFS<br />Suposiciones y Objetivos<br />Arquitectura<br />NameNodes<br />DataNodes<br />Otras características<br />
  44. 44. Suposiciones y Objetivos<br />El hardware falla<br />Grandes cantidades de datos<br />Máquinas comunes<br />Mover la computación, no los datos<br />Portabilidad<br />
  45. 45. Suposiciones y Objetivos<br />El hardware falla<br />Grandes cantidades de datos<br />Máquinas comunes<br />Mover la computación, no los datos<br />Portabilidad<br />
  46. 46. Suposiciones y Objetivos<br />El hardware falla<br />Grandes cantidades de datos<br />Máquinas comunes<br />Mover la computación, no los datos<br />Portabilidad<br />
  47. 47. Suposiciones y Objetivos<br />El hardware falla<br />Grandes cantidades de datos<br />Máquinas comunes<br />Mover la computación, no los datos<br />Portabilidad<br />
  48. 48. Suposiciones y Objetivos<br />El hardware falla<br />Grandes cantidades de datos<br />Máquinas comunes<br />Mover la computación, no los datos<br />Portabilidad<br />
  49. 49. Arquitectura<br />
  50. 50. Arquitectura<br />Espacio de nombres único<br />Escribir una vez, leer varias<br />Archivos divididos en bloques<br />Acceso directo a los datos<br />
  51. 51. Arquitectura<br />Espacio de nombres único<br />Escribir una vez, leer varias<br />Archivos divididos en bloques<br />Acceso directo a los datos<br />
  52. 52. Arquitectura<br />Espacio de nombres único<br />Escribir una vez, leer varias<br />Archivos divididos en bloques<br />Acceso directo a los datos<br />
  53. 53. Arquitectura<br />Espacio de nombres único<br />Escribir una vez, leer varias<br />Archivos divididos en bloques<br />Acceso directo a los datos<br />
  54. 54. Arquitectura<br />
  55. 55. NameNode<br />Controla el espacio de nombres<br />Ficheros &lt;&gt; Bloques<br />Bloques &lt;&gt; DataNodes<br />Configuración de cluster<br />Metadata<br />
  56. 56. NameNodeMetadata<br />En memoria<br />Ficheros<br />Atributos: creación, factor de replica.<br />Bloques<br />Bloques &lt;&gt; DataNodes<br />LOG<br />
  57. 57. Arquitectura<br />
  58. 58. DataNode<br />Servidor de bloques<br />Reportes al NameNode<br />Envió de datos a otros DataNodes<br />
  59. 59. DataNode<br />Servidor de bloques<br />Reportes al NameNode<br />Envió de datos a otros DataNodes<br />
  60. 60. DataNode<br />Servidor de bloques<br />Reportes al NameNode<br />Envió de datos a otros DataNodes<br />
  61. 61. Arquitectura<br />
  62. 62. Otras características<br />Disposición de los bloques<br />Heartbeats<br />Replicación<br />Validación de los datos<br />Balanceo<br />Interfaz web<br />
  63. 63. Otras características<br />Disposición de los bloques<br />Heartbeats<br />Replicación<br />Validación de los datos<br />Balanceo<br />Interfaz web<br />
  64. 64. Otras características<br />Disposición de los bloques<br />Heartbeats<br />Replicación<br />Validación de los datos<br />Balanceo<br />Interfaz web<br />
  65. 65. Otras características<br />Disposición de los bloques<br />Heartbeats<br />Replicación<br />Validación de los datos<br />Balanceo<br />Interfaz web<br />
  66. 66. Otras características<br />Disposición de los bloques<br />Heartbeats<br />Replicación<br />Validación de los datos<br />Balanceo<br />Interfaz web<br />
  67. 67. Otras características<br />Disposición de los bloques<br />Heartbeats<br />Replicación<br />Validación de los datos<br />Balanceo<br />Interfaz de acceso<br />
  68. 68. Fallos en NameNode<br />Single Point of Failure<br />LOG<br />NameNode secundario<br />
  69. 69. Lectura/Escritura<br />Lectura<br />Escritura<br />
  70. 70. Lectura/Escritura<br />Lectura<br />Escritura<br />
  71. 71. Más HDFS<br />HDFS APIs<br />MountableHDFS<br />
  72. 72. Contenidos<br />Introducción a Hadoop<br />MapReduce<br />HadoopDistributed File System<br />MapReduce + HDFS<br />Subproyectos<br />Demo<br />
  73. 73. MapReduce + HDFS<br />
  74. 74. Nuevos componentes<br />JobTracker<br />TaskTracker<br />
  75. 75. Job<br />Tracker<br />Cliente<br />Task<br />Tracker<br />map<br />Task<br />Tracker<br />sort<br />Input<br />Formar<br />ram<br />split<br />region<br />region<br />split<br />reduce()<br />combine()<br />reduce()<br />read<br />split<br />Output<br />Formar<br />Task<br />Tracker<br />region<br />region<br />Input<br />Files<br />Output<br />File<br />Task<br />Tracker<br />region<br />region<br />
  76. 76. Job<br />Tracker<br />Cliente<br />Task<br />Tracker<br />map<br />Task<br />Tracker<br />sort<br />Input<br />Formar<br />ram<br />split<br />region<br />region<br />split<br />reduce()<br />combine()<br />reduce()<br />read<br />split<br />Output<br />Formar<br />Task<br />Tracker<br />region<br />region<br />Input<br />Files<br />Output<br />File<br />Task<br />Tracker<br />region<br />region<br />
  77. 77. Job<br />Tracker<br />Cliente<br />Task<br />Tracker<br />map<br />Task<br />Tracker<br />sort<br />Input<br />Formar<br />ram<br />split<br />region<br />region<br />split<br />reduce()<br />combine()<br />reduce()<br />read<br />split<br />Output<br />Formar<br />Task<br />Tracker<br />region<br />region<br />Input<br />Files<br />Output<br />File<br />Task<br />Tracker<br />region<br />region<br />
  78. 78. Job<br />Tracker<br />Cliente<br />MapTask<br />Task<br />Tracker<br />map<br />Task<br />Tracker<br />sort<br />Input<br />Formar<br />ram<br />split<br />region<br />region<br />split<br />reduce()<br />combine()<br />reduce()<br />read<br />split<br />Output<br />Formar<br />Task<br />Tracker<br />region<br />region<br />Input<br />Files<br />Output<br />File<br />Task<br />Tracker<br />region<br />region<br />
  79. 79. Job<br />Tracker<br />Cliente<br />MapTask<br />Task<br />Tracker<br />map<br />Task<br />Tracker<br />sort<br />Input<br />Format<br />ram<br />split<br />region<br />region<br />split<br />reduce()<br />combine()<br />reduce()<br />read<br />split<br />Output<br />Formar<br />Task<br />Tracker<br />region<br />region<br />Input<br />Files<br />Output<br />File<br />Task<br />Tracker<br />region<br />region<br />
  80. 80. Job<br />Tracker<br />Cliente<br />MapTask<br />Task<br />Tracker<br />map<br />Task<br />Tracker<br />sort<br />Input<br />Formar<br />ram<br />split<br />region<br />region<br />split<br />reduce()<br />combine()<br />reduce()<br />read<br />split<br />Output<br />Formar<br />Task<br />Tracker<br />region<br />region<br />Input<br />Files<br />Output<br />File<br />Task<br />Tracker<br />region<br />region<br />
  81. 81. Job<br />Tracker<br />Cliente<br />MapTask<br />Task<br />Tracker<br />map<br />Task<br />Tracker<br />sort<br />Input<br />Formar<br />ram<br />split<br />region<br />region<br />split<br />reduce()<br />combine()<br />reduce()<br />read<br />split<br />Output<br />Formar<br />Task<br />Tracker<br />region<br />region<br />Input<br />Files<br />Output<br />File<br />Task<br />Tracker<br />region<br />region<br />
  82. 82. Job<br />Tracker<br />Cliente<br />MapTask<br />Task<br />Tracker<br />map<br />Task<br />Tracker<br />sort<br />Input<br />Formar<br />ram<br />split<br />region<br />region<br />split<br />reduce()<br />combine()<br />reduce()<br />read<br />split<br />Output<br />Formar<br />Task<br />Tracker<br />region<br />region<br />Input<br />Files<br />Output<br />File<br />Task<br />Tracker<br />region<br />region<br />
  83. 83. Job<br />Tracker<br />Cliente<br />MapTask<br />Task<br />Tracker<br />map<br />Task<br />Tracker<br />sort<br />Input<br />Formar<br />ram<br />split<br />region<br />region<br />split<br />reduce()<br />combine()<br />reduce()<br />read<br />split<br />Output<br />Formar<br />Task<br />Tracker<br />region<br />region<br />Input<br />Files<br />Output<br />File<br />Task<br />Tracker<br />region<br />region<br />
  84. 84. Job<br />Tracker<br />Cliente<br />MapTask<br />Task<br />Tracker<br />map<br />Task<br />Tracker<br />sort<br />Input<br />Formar<br />ram<br />split<br />region<br />region<br />split<br />reduce()<br />combine()<br />reduce()<br />read<br />split<br />Output<br />Formar<br />Task<br />Tracker<br />region<br />region<br />Input<br />Files<br />Output<br />File<br />Task<br />Tracker<br />region<br />region<br />
  85. 85. Job<br />Tracker<br />Cliente<br />Task<br />Tracker<br />map<br />Task<br />Tracker<br />sort<br />Input<br />Formar<br />ram<br />split<br />region<br />region<br />split<br />reduce()<br />combine()<br />reduce()<br />read<br />split<br />Output<br />Formar<br />Task<br />Tracker<br />region<br />region<br />Input<br />Files<br />Output<br />File<br />Task<br />Tracker<br />region<br />region<br />
  86. 86. Job<br />Tracker<br />Cliente<br />Task<br />Tracker<br />map<br />Task<br />Tracker<br />sort<br />Input<br />Formar<br />ram<br />split<br />region<br />region<br />split<br />reduce()<br />combine()<br />reduce()<br />read<br />split<br />Output<br />Formar<br />Task<br />Tracker<br />region<br />region<br />Input<br />Files<br />Output<br />File<br />Task<br />Tracker<br />region<br />region<br />
  87. 87. HadoopStreaming<br />Utilidad<br />Sencillez<br />Pensar en tuberías (à la POSIX)<br />Prototipado rápido<br />No Java<br />Demo<br />
  88. 88. Contenidos<br />Introducción a Hadoop<br />MapReduce<br />HadoopDistributed File System<br />MapReduce + HDFS<br />Subproyectos<br />Demo<br />
  89. 89. Subproyectos<br />
  90. 90. Subproyectos<br />Pig<br />Hive<br />HBase<br />MapReduce<br />HDFS<br />ZooKeeper<br />Core<br />
  91. 91. Pig<br />Hive<br />HBase<br />ZooKeeper<br />Core<br />MapReduce<br />HDFS<br />Core<br />
  92. 92. ZooKeeper<br />Pig<br />Hive<br />HBase<br />MapReduce<br />HDFS<br />ZooKeeper<br />Core<br />
  93. 93. ZooKeeper<br />A. distribuidas: fallos parciales<br />Simple<br />Expresivo<br />Alta disponibilidad<br />Looselycoupled<br />Alto rendimiento<br />
  94. 94. ZooKeeper<br />A. distribuidas: fallos parciales<br />Simple<br />Expresivo<br />Alta disponibilidad<br />Looselycoupled<br />Alto rendimiento<br />
  95. 95. ZooKeeper<br />A. distribuidas: fallos parciales<br />Simple<br />Expresivo<br />Alta disponibilidad<br />Looselycoupled<br />Alto rendimiento<br />
  96. 96. ZooKeeper<br />A. distribuidas: fallos parciales<br />Simple<br />Expresivo<br />Alta disponibilidad<br />Looselycoupled<br />Alto rendimiento<br />
  97. 97. ZooKeeper<br />A. distribuidas: fallos parciales<br />Simple<br />Expresivo<br />Alta disponibilidad<br />Looselycoupled<br />Alto rendimiento<br />
  98. 98. ZooKeeper<br />A. distribuidas: fallos parciales<br />Simple<br />Expresivo<br />Alta disponibilidad<br />Looselycoupled<br />Alto rendimiento<br />
  99. 99. Pig<br />Pig<br />Hive<br />HBase<br />MapReduce<br />HDFS<br />ZooKeeper<br />Core<br />
  100. 100. Pig<br />Lenguaje de script: PigLatin<br />Nivel de abstracción<br />Operaciones y transformaciones<br />MapReduce Jobs<br />No es SQL<br />
  101. 101. Hive<br />Pig<br />Hive<br />HBase<br />MapReduce<br />HDFS<br />ZooKeeper<br />Core<br />
  102. 102. Hive<br />Análisis de datos<br />Datos estructurados<br />Query Language (à la SQL)<br />No es un sistema Real Time<br />
  103. 103. HBase<br />Pig<br />Hive<br />HBase<br />MapReduce<br />HDFS<br />ZooKeeper<br />Core<br />
  104. 104. HBase<br />Base de Datos<br />Distribuida<br />Orientada a columnas<br />Basada en BigTable<br />
  105. 105. Contenidos<br />Introducción a Hadoop<br />MapReduce<br />HadoopDistributed File System<br />MapReduce + HDFS<br />Subproyectos<br />Demo<br />
  106. 106. Demo<br />
  107. 107. Documentación<br />Hadoop Homepagehttp://hadoop.apache.org/<br />HadoopWikihttp://wiki.apache.org/hadoop/<br />
  108. 108. Libros<br />Hadoop: TheDefinitiveGuideTom White – O’Reilly (Julio 2009)http://oreilly.com/catalog/9780596521998/<br />Hadoop in ActionChuck Lam y James Warren –Manning (Octubre 2009)http://www.manning.com/lam/<br />Pro HadoopJason Venner–Apress (No publicado)http://www.apress.com/book/view/1430219424<br />
  109. 109. Preguntas?<br />
  110. 110. Créditos imágenes<br />Deadlock – Unknown Licensevia reddit: http://www.reddit.com/r/programming/comments/65pcg/deadlock_traffic_version_pic<br />
  111. 111. Gracias<br />Raúl Ochoa<br />rochoaf@gmail.com<br />

×