You are on page 1of 10

La UOC como escenario Big Data:

ejemplo de anlisis usando


Hadoop / MapReduce

Gestin de Big Data


Juli Minguilln
El Campus Virtual de la UOC
Escenario donde interactan usuarios, servicios
y recursos


Datos disponibles:

Fichero de conexiones al Campus Virtual (5
semestres)

Identfcador (anonimizado va SHA-256 + random)

Fecha y hora de conexin (login) en formato
YYYYMMDDHHMMSS

Fecha y hora de desconexin (logout)

> 61 millones de conexiones

6 GBytes
El Campus Virtual de la UOC
Patrones de conexin de los usuarios


Ejemplos de preguntas a responder:

Usuario con ms conexiones

Duracin media de las conexiones

Da de la semana con ms conexiones (login)

Hora (y/o minuto) con ms conexiones

...
El Campus Virtual de la UOC
Paradigma Map / Reduce

...

Fichero Particin Map Reduce Resultado


original
El Campus Virtual de la UOC
Paradigma Map / Reduce


Cual s la hora y minuto con ms conexiones (login)?

Map: como cada conexin / desconexin est en una


misma lnia, el fchero puede ser fragmentado en
grupos de N lneas que pueden ser procesados por
separado, generando una aparicin de cada pareja
(HHMM, 1) por cada lnea procesada

Reduce: para cada valor possible de HHMM, se cuenta


el nmero de parejas (HHMM, 1) generado
El Campus Virtual de la UOC
Paradigma Map / Reduce


Cual s la hora y minuto con ms usuarios conectados
al mismo tempo?

En este caso, para cada conexin / desconexin es


necesario generar un par (HHMM, 1) desde el momento
de conexin hasta el de desconexin, ambos inclusive

NOTA: no es necesario gestonar el cambio de da


El Campus Virtual de la UOC
Ejemplo (HHMMin HHMMout)

<1642d0b1...> 20120531000032 20120531010938

En este caso se generan los pares siguientes:

(0000, 1), (0001, 1), ..., (0059, 1), (0100, 1), ..., (0109, 1)
El Campus Virtual de la UOC
Ejemplo (HHMMin > HHMMout)

<9d231134...> 20120531181913 20120601001757

En este caso se generan los pares siguientes:

(1819, 1), (1820, 1), ..., (2359, 1), (0000, 1), ..., (0017, 1)
El Campus Virtual de la UOC
Pseudocdigo Map

HHMMi=subcadena(<timestamp_login>, 9, 4)
HHMMo=subcadena(<timestamp_logout>, 9, 4)
si (HHMMi > HHMMo) {
mientras (HHMMi != '0000') {
generar el par (HHMMi, 1)
avanzar HHMMi
}
}
mientras (HHMMi <= HHMMo) {
generar el par (HHMMi, 1)
avanzar HHMMi
}
El Campus Virtual de la UOC
Idoneidad del paradigma Map / Reduce


Qu pasa si no se puede asegurar que toda la
informacin necesaria se encuentra en un mismo
fragmento de fchero?

Duracin media / mxima entre conexiones
consecutvas de un mismo usuario

Patrones de conexin sospechosos (muy frecuentes,
regulares, ...)

Descomponer las fases Map / Reduce en varias
consecutvas: (Map / (Map / Reduce)) / Reduce, p.e.
ordenando primero por usuario

You might also like