If you can't read please download the document
Upload
miguel-pastor
View
4.387
Download
0
Embed Size (px)
Citation preview
Hadoop, Cloud y Spring
Miguel ngel Pastor Olivar
Contenidos
Qu es Hadoop? Motivaciones
Arquitectura bsica de Hadoop
Una visin general de Map/Reduce
Ejemplos de aplicacin
Hadoop y cloud: combinacin perfecta
Incorporando Spring
Proyectos relacionados
Qu es Hadoop?
Un poco de historia
Subproyecto de Nutch (liderado por Doug Cutting)
Google papers: GFS y Map/Reduce framework (2004)
Adoptan los papers anteriores en Nutch
Yahoo! contrata a Doug Cutting (Enero 2006)
Apache top level project (2008)Clster linux +10000 ncleos
mbito y retos
Infraestructura procesamiento batch distribuidoAccesible
Robusto
Escalable
Simple
En la actualidad volmenes de petabytes
mbito y retos
Problemtica programacin distribuida: fallos de red, congestin, fallo de un proceso, sincronizacin, . . .
Por qu distribuido? Ley de Moore
Enfoque Hadoop
Modelo de programacin simplificado
Distribucin de datos
Movimiento de los programas
Proceso de Mapping
Proceso de Reduce
Proceso de Mapping
Proceso de Mapping
Proceso de Reduce
Proceso de Reduce
Otros enfoques: RDBMS
RDBMSMapReduce
Tamao DatosGigabytesPetabytes
AccesoBatch e interactivoBatch
Actualizaciones(R/W)*W1/R*
EstructuraEstticoDinmico
IntegridadAltoBajo
EscaladoScale-upScale-out
ProgramacinDeclarativaFuncional
Otros enfoques: Grid
Manejo grandes volmenes datos
Sistema de archivos compartido (SAN)
Intensivo en computacin
Messaging Passing Interface (MPI): bajo nivel
Otros enfoques: Volunteer
SETI@home
Donacin de tiempo de CPU inactivo
Intensivo en CPU
Modelo de transmisin de datos
Componentes de Hadoop
HDFS
Sistema de archivos distribuido (maestro/esclavo)
Diseado para:Archivos muy grandes (petabytes)
Una escritura y mltiples lecturas
Hardware barato
No diseado para:Bajas latencias en accesos a datos (milisegundos)
Muchos archivos pequeos
Mltiples escritores ni en posiciones arbitrarias
Arquitectura HDFS
NameNodeMaestro del clster
Gestin sistema de archivos y metadatos
DataNodeAlmacenan la informacin
Reportan al NameNode
SecondaryNameNodeSnapshots del namenode principal (peridicos)
HDFS: comandos bsicos
Crear un directorio: hadoop dfs -mkdir path
Aadir archivo: hadoop dfs -put file HdfsPath
Eliminar: hadoop dfs -rmr HdfsPath
Recuperar un archivo: hadoop dfs -get HdfsPath
Otros sistemas de archivos
FilesystemURIImplementacin
Localfilefs.LocalFileSystem
HDFShdfshdfs.DistributedFileSystem
HFTPhftphdfs.HftpFileSystem
HSFTP hsftphdfs.HsftpFileSystem
HARharfs.HarFileSystem
KFSkfsfs.kfs.KosmosFileSystem
FTPftpfs.ftp.FTPFileSystem
S3 (nativo)s3nfs.s3native.NativeS3FileSystem
S3 (bloques)s3fs.s3.S3FileSystem
Map/Reduce
Conceptos bsicos
Modelo de programacin no convencional
Dos fases: map y reducePares clave-valor como entradas y salidas (tipos indicados por el desarrollador)
Debemos especificar funcin de map y reduce
Inmutabilidad
Flujo de informacin
Proceso de Mapping
Proceso de Reduce
Proceso de Mapping
Proceso de Mapping
Proceso de Reduce
Proceso de Reduce
Datos locales (previamente cargados)Datos intermediosde los mappers(ordenados)Intercambio(aleatorio)de valoresGeneracin de la salida
Funciones combiner
Limitaciones ancho de banda del clster
Minimizar el flujo de transferencia de informacin
Utilizacin de funciones combinerSe ejecutan sobre la salida del mapper
Deben ser idempotentes
fun(x,y) = fun(fun(x),fun(y))
Nuestro primer programa: Contando palabras
Map/Reduce en ejecucin
JobTracker
Maestro de los nodos de computacin
Coordinador entre nosotros y Hadoop
Determina el plan de ejecucinArchivos a procesar
Asignacin de tareas a nodos
Monitorizacin
Un demonio por clster
TaskTracker
Gestionan la ejecucin en los nodos esclavo
Uno por cada esclavoPuede crear mltiples mquinas virtuales
Comunicacin con el JobTrackerGestin de los errores
Reasignacin de tareas fallidas
Mecanismo de ejecucin
Sistema de archivos compartidoPrograma Map/ReduceJobClientJobTracker
TaskTrackerChildTareas Map o Reduce
124365798
Hadoop streaming
API escritura funciones en otros lenguajesLectura/escritura de la salida estndar
Encaja perfectamente en procesado de textos
Ejemplo
HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar \ -input myInputDirs -output myOutputDir \ -mapper /bin/cat \ -reducer /bin/wc
Hadoop y cloud: una combinacin perfecta
Amazon Web Services (AWS)
Clster hadoop sobre la infraestructura Amazon
Espacio de almacenamiento S3
Nodos de ejecucin EC2
Aprovisionamiento dinmico en funcin de nuestras necesidades
Proceso de trabajo
Subir datos al espacio de almacenamiento S3
Subir programa a ejecutar
Configuracin del clusterSeleccin de programa a ejecutar
Configuracin del nmero y tipo de nodos
Ejecucin
Anlisis de resultados
Un ejemplo prctico
Subida de datos(I)
Subida de datos(II)
Configuracin proceso (I)
Configuracin proceso (II)
Configuracin proceso (III)
Configuracin proceso (IV)
Configuracin proceso (V)
Configuracin proceso (VI)
Configuracin proceso (VII)
Usos de Hadoop
Anlisis de redes sociales (I)
Registros de llamadas telefnicasLlamante Llamado C-origen C-destino Fecha Duracin
Intervalos temporales tres meses (aprox)Aproximadamente 7000 millones de registros
Procesamiento batch preparacin de datosOriginirariamente escritos en C++ multihilo
Modelos estdisticos construccin redes sociales (SAS)
Anlisis de redes sociales (II)
Cluster hadoop propio~ 2 Terabytes de espacio
16 nodos
Nivel de replicacin: 2 (proceso no crtico)
Uso internoImposibilidad implantacin en corporaciones grandes
Real Time Bidding (RTB)
Subasta en tiempo real para espacios publicitarios
Construccin de modelos matemticos que optimicen los mecanismos de puja
Informacin disponibleLogs de navegacin
Ventanas temporales: dos-tres semanas
Resultados: entrada a plataforma de bidding
Real Time Bidding (RTB)
Cluster Hadoop (pruebas)
Sistema de archivos: S3 (Amazon)[30,40] Gigabytes diarios
Uso de servicios Elastic Map Reduce (Amazon)Habitualmente 16 unidades de computacin
Procesamiento batchEntrada para modelos estadsticos (SAS)
Ms usos
Last.fmAnlisis de logs, generacin de grficos, ...
Facebookhttp://wiki.apache.org/hadoop/PoweredBy#F
Hadoop + HiveWarehousing
Nutch
RackspaceProcesamiento de logs
Ms usos
New York TimesProcesamiento de imgenes
China mobileData mining
Stumble UponRecomendaciones de los mejores web sites
Proyecto ES2 de IBMAnlisis portales empresariales
Incorporando Spring
Conceptos generales
Extensin Spring para la escritura de programas Hadoop
Est en fase inicial de desarrolloInyeccin de dependencias
Map/Reduce como POJOsUso de anotaciones
Namespace
Contando palabras (de nuevo); esta vez con Spring
Referencias y temtica relacionada
Temas relacionados
HiveSQL sobre Hadoop
PigLenguaje de procesado de datos de alto nivel
ZookeeperServicio de coordinacin de procesos distribuidos
HbaseBase de datos distribuida orientada a columnas
Construida sobre HDFS
Referencias
Documentacin oficialhttp://hadoop.apache.org/common/docs
Tutorial de Yahoohttp://developer.yahoo.com/hadoop/tutorial/index.html
Hadoop The Definitive Guide, O' Really | Yahoo Press
Pro Hadoop, Appress, Jason Venner
Hadoop in Action
Un poco de SPAM
Escalabilidad en espaol
Grupo google
Temtica relacionada con la escalabilidad de sistemas softwareNo ligado a ninguna tecnologa particular
Objetivo: crear una comunidad slida
Q&A