hadoop, cloud y spring

Download Hadoop, Cloud y Spring

If you can't read please download the document

Upload: miguel-pastor

Post on 16-Apr-2017

4.384 views

Category:

Technology


0 download

TRANSCRIPT

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