HadoopMapReduce para procesar grandes
cantidades de datos
Raúl Ochoa
Antecedentes
AntecedentesSistemas Distribuidos
AntecedentesSistemas DistribuidosProgramación Funcional
AntecedentesSistemas DistribuidosProgramación FuncionalÁlgebra
AntecedentesSistemas DistribuidosProgramación FuncionalÁlgebraJava
AntecedentesSistemas DistribuidosProgramación FuncionalÁlgebraJavaGoogle
AntecedentesSistemas DistribuidosProgramación FuncionalÁlgebraJavaGoogle
AntecedentesSistemas DistribuidosProgramación FuncionalÁlgebraJavaGoogleCrédito de Libre Elección
AntecedentesSistemas DistribuidosProgramación FuncionalÁlgebraJavaGoogleCrédito de Libre Elección
ContenidosIntroducción a HadoopMapReduceHadoop Distributed File SystemMapReduce + HDFSSubproyectosDemo
ContenidosIntroducción a HadoopMapReduceHadoop Distributed File SystemMapReduce + HDFSSubproyectosDemo
Introducción
IntroducciónObjetivosBaseCaracterísticasHistoriaPowered byComparación con otros sistemas
ObjetivosOpen SourceComputación distribuidaProcesar grandes cantidades de datos
ObjetivosOpen SourceComputación distribuidaProcesar grandes cantidades de datos
ObjetivosOpen SourceComputación distribuidaProcesar grandes cantidades de datos
BaseMapReduceGFS
CaracterísticasEscalableEconómicoEficienteFiable
CaracterísticasEscalableEconómicoEficienteFiable
CaracterísticasEscalableEconómicoEficienteFiable
CaracterísticasEscalableEconómicoEficienteFiable
HistoriaCreador: Doug Cutting2002-2004: Nutch2004-2006: GFS & MapReduce Papers2006-2008: Yahoo!
HistoriaCreador: Doug Cutting2002-2004: Nutch2004-2006: GFS & MapReduce Papers2006-2008: Yahoo!
HistoriaCreador: Doug Cutting2002-2004: Nutch2004-2006: GFS & MapReduce Papers2006-2008: Yahoo!
HistoriaCreador: Doug Cutting2002-2004: Nutch2004-2006: GFS & MapReduce Papers2006-2008: Yahoo!
Powered by Hadoop
http://wiki.apache.org/hadoop/PoweredBy
ComparaciónRDBMSGrid ComputingSETI@home et al.
ComparaciónRDBMSGrid ComputingSETI@home et al.
ComparaciónRDBMSGrid ComputingSETI@home et al.
ContenidosIntroducción a HadoopMapReduceHadoop Distributed File SystemMapReduce + HDFSSubproyectosDemo
MapReduce
MapReduceComputación distribuida
DEAD LOCK
MapReduceComputación distribuidaProgramación Funcional
MapReduceComputación distribuidaProgramación FuncionalFunciones Map y Reduce
Map
Input
Output
map()
Reduce
Input
Output
reduce()
MapReduceComputación distribuidaProgramación FuncionalFunciones Map y Reducemap() y reduce() en Python
ContenidosIntroducción a HadoopMapReduceHadoop Distributed File SystemMapReduce + HDFSSubproyectosDemo
HDFS
HDFSSuposiciones y ObjetivosArquitecturaNameNodesDataNodesOtras características
Suposiciones y ObjetivosEl hardware fallaGrandes cantidades de datosMáquinas comunesMover la computación, no los datosPortabilidad
Suposiciones y ObjetivosEl hardware fallaGrandes cantidades de datosMáquinas comunesMover la computación, no los datosPortabilidad
Suposiciones y ObjetivosEl hardware fallaGrandes cantidades de datosMáquinas comunesMover la computación, no los datosPortabilidad
Suposiciones y ObjetivosEl hardware fallaGrandes cantidades de datosMáquinas comunesMover la computación, no los datosPortabilidad
Suposiciones y ObjetivosEl hardware fallaGrandes cantidades de datosMáquinas comunesMover la computación, no los datosPortabilidad
Arquitectura
ArquitecturaEspacio de nombres únicoEscribir una vez, leer variasArchivos divididos en bloquesAcceso directo a los datos
ArquitecturaEspacio de nombres únicoEscribir una vez, leer variasArchivos divididos en bloquesAcceso directo a los datos
ArquitecturaEspacio de nombres únicoEscribir una vez, leer variasArchivos divididos en bloquesAcceso directo a los datos
ArquitecturaEspacio de nombres únicoEscribir una vez, leer variasArchivos divididos en bloquesAcceso directo a los datos
Arquitectura
NameNodeControla el espacio de nombresFicheros <> BloquesBloques <> DataNodesConfiguración de clusterMetadata
NameNode MetadataEn memoriaFicherosAtributos: creación, factor de replica.BloquesBloques <> DataNodesLOG
Arquitectura
DataNodeServidor de bloquesReportes al NameNodeEnvió de datos a otros DataNodes
DataNodeServidor de bloquesReportes al NameNodeEnvió de datos a otros DataNodes
DataNodeServidor de bloquesReportes al NameNodeEnvió de datos a otros DataNodes
Arquitectura
Otras característicasDisposición de los bloquesHeartbeatsReplicaciónValidación de los datosBalanceoInterfaz web
Otras característicasDisposición de los bloquesHeartbeatsReplicaciónValidación de los datosBalanceoInterfaz web
Otras característicasDisposición de los bloquesHeartbeatsReplicaciónValidación de los datosBalanceoInterfaz web
Otras característicasDisposición de los bloquesHeartbeatsReplicaciónValidación de los datosBalanceoInterfaz web
Otras característicasDisposición de los bloquesHeartbeatsReplicaciónValidación de los datosBalanceoInterfaz web
Otras característicasDisposición de los bloquesHeartbeatsReplicaciónValidación de los datosBalanceoInterfaz de acceso
Fallos en NameNodeSingle Point of FailureLOGNameNode secundario
Lectura/EscrituraLecturaEscritura
Lectura/EscrituraLecturaEscritura
Más HDFSHDFS APIsMountableHDFS
ContenidosIntroducción a HadoopMapReduceHadoop Distributed File SystemMapReduce + HDFSSubproyectosDemo
MapReduce + HDFS
Nuevos componentesJobTrackerTaskTracker
Cliente JobTracker
TaskTracker
map
InputFormar
combine()reduce()
regionregion
ram TaskTracker
read
sort
reduce()
InputFiles
split
split
split
OutputFile
TaskTracker
TaskTracker
regionregion
regionregion
OutputFormar
Cliente JobTracker
TaskTracker
map
InputFormar
combine()reduce()
regionregion
ram TaskTracker
read
sort
reduce()
InputFiles
split
split
split
OutputFile
TaskTracker
TaskTracker
regionregion
regionregion
OutputFormar
Cliente JobTracker
TaskTracker
map
InputFormar
combine()reduce()
regionregion
ram TaskTracker
read
sort
reduce()
InputFiles
split
split
split
OutputFile
TaskTracker
TaskTracker
regionregion
regionregion
OutputFormar
Cliente JobTracker
TaskTracker
map
InputFormar
combine()reduce()
regionregion
ram TaskTracker
read
sort
reduce()
InputFiles
split
split
split
OutputFile
TaskTracker
TaskTracker
regionregion
regionregion
MapTask
OutputFormar
Cliente JobTracker
TaskTracker
map
InputFormat
combine()reduce()
regionregion
ram TaskTracker
read
sort
reduce()
InputFiles
split
split
split
OutputFile
TaskTracker
TaskTracker
regionregion
regionregion
MapTask
OutputFormar
Cliente JobTracker
TaskTracker
map
InputFormar
combine()reduce()
regionregion
ram TaskTracker
read
sort
reduce()
InputFiles
split
split
split
OutputFile
TaskTracker
TaskTracker
regionregion
regionregion
MapTask
OutputFormar
Cliente JobTracker
TaskTracker
map
InputFormar
combine()reduce()
regionregion
ram TaskTracker
read
sort
reduce()
InputFiles
split
split
split
OutputFile
TaskTracker
TaskTracker
regionregion
regionregion
MapTask
OutputFormar
Cliente JobTracker
TaskTracker
map
InputFormar
combine()reduce()
regionregion
ram TaskTracker
read
sort
reduce()
InputFiles
split
split
split
OutputFile
TaskTracker
TaskTracker
regionregion
regionregion
MapTask
OutputFormar
Cliente JobTracker
TaskTracker
map
InputFormar
combine()reduce()
regionregion
ram TaskTracker
read
sort
reduce()
InputFiles
split
split
split
OutputFile
TaskTracker
TaskTracker
regionregion
regionregion
MapTask
OutputFormar
Cliente JobTracker
TaskTracker
map
InputFormar
combine()reduce()
regionregion
ram TaskTracker
read
sort
reduce()
InputFiles
split
split
split
OutputFile
TaskTracker
TaskTracker
regionregion
regionregion
MapTask
OutputFormar
Cliente JobTracker
TaskTracker
map
InputFormar
combine()reduce()
regionregion
ram TaskTracker
read
sort
reduce()
OutputFormar
InputFiles
split
split
split
OutputFile
TaskTracker
TaskTracker
regionregion
regionregion
Cliente JobTracker
TaskTracker
map
InputFormar
combine()reduce()
regionregion
ram TaskTracker
read
sort
reduce()
OutputFormar
InputFiles
split
split
split
OutputFile
TaskTracker
TaskTracker
regionregion
regionregion
Hadoop StreamingUtilidadSencillezPensar en tuberías (à la POSIX)Prototipado rápidoNo JavaDemo
ContenidosIntroducción a HadoopMapReduceHadoop Distributed File SystemMapReduce + HDFSSubproyectosDemo
Subproyectos
Subproyectos
Core
MapReduce HDFS
Pig
ZooKeeper
Hive HBase
Pig
ZooKeeper
Hive HBase
Core
Core
MapReduce HDFS
ZooKeeper
Core
MapReduce HDFS
Pig
ZooKeeper
Hive HBase
ZooKeeperA. distribuidas: fallos parcialesSimpleExpresivoAlta disponibilidadLoosely coupledAlto rendimiento
ZooKeeperA. distribuidas: fallos parcialesSimpleExpresivoAlta disponibilidadLoosely coupledAlto rendimiento
ZooKeeperA. distribuidas: fallos parcialesSimpleExpresivoAlta disponibilidadLoosely coupledAlto rendimiento
ZooKeeperA. distribuidas: fallos parcialesSimpleExpresivoAlta disponibilidadLoosely coupledAlto rendimiento
ZooKeeperA. distribuidas: fallos parcialesSimpleExpresivoAlta disponibilidadLoosely coupledAlto rendimiento
ZooKeeperA. distribuidas: fallos parcialesSimpleExpresivoAlta disponibilidadLoosely coupledAlto rendimiento
Pig
Core
MapReduce HDFS
Pig
ZooKeeper
Hive HBase
PigLenguaje de script: Pig LatinNivel de abstracciónOperaciones y transformacionesMapReduce JobsNo es SQL
Hive
Core
MapReduce HDFS
Pig
ZooKeeper
Hive HBase
HiveAnálisis de datosDatos estructuradosQuery Language (à la SQL)No es un sistema Real Time
HBase
Core
MapReduce HDFS
Pig
ZooKeeper
Hive HBase
HBaseBase de DatosDistribuidaOrientada a columnasBasada en BigTable
Contenidos• Introducción a Hadoop• MapReduce• Hadoop Distributed File System• MapReduce + HDFS• Subproyectos• Demo
Demo
Documentación
• Hadoop Homepagehttp://hadoop.apache.org/
• Hadoop Wikihttp://wiki.apache.org/hadoop/
Libros
• Hadoop: The Definitive GuideTom White – O’Reilly (Julio 2009)http://oreilly.com/catalog/9780596521998/
• Hadoop in ActionChuck Lam y James Warren – Manning (Octubre 2009)http://www.manning.com/lam/
• Pro HadoopJason Venner – Apress (No publicado)http://www.apress.com/book/view/1430219424
Preguntas?
Créditos imágenes
• Deadlock – Unknown Licensevia reddit: http://www.reddit.com/r/programming/comments/65pcg/deadlock_traffic_version_pic
Gracias
Raúl [email protected]
Top Related