Conceptos y Aplicaciones de Big Data
- Practica 1 Paradigma MapReduce
- Practica 2 Hadoop MapReduce
- Practica 3
- Practica 4
- Practica 5
- Practica 6
- Practica 7
Dado el siguiente dataset:
Responda para cada job:
¿Cuántas veces (invocaciones) se ejecuta la función map?
¿Cuántas veces (invocaciones) se ejecuta la función reduce?
¿Cuántos mappers se ejecutan?
¿Cuántos reducers se ejecutan?
¿Qué datos recibe cada función reduce?
¿Cuál es la salida de cada job?
a) Job A
def map(k1, v1, context):
context.write(1, v1)
def reduce(k2, v2, context):
n = 0
for v in v2:
n = n + 1
context.write(k2, n)
b) Job B
def map(k1, v1, context):
context.write(1, v1)
def reduce(k2, v2, context):
n = 0
for v in v2:
n = n + v
context.write(k2, n)
c) Job C
def map(k1, v1, context):
if (v1 < 30):
context.write(1, k1)
else:
context.write(2, k1)
def reduce(k2, v2, context):
max = -1
for v in v2:
if(v > max):
max = v
context.write(k2, max)
d) Job D
def map(k1, v1, context):
for v in range(v1):
context.write(k1, v1)
def reduce(k2, v2, context):
n = 0
for v in v2:
n = n + 1
context.write(k2, n)
e) Job E
def map(k1, v1, context):
context.write(v1, k1)
def reduce(k2, v2, context):
n = 0
for v in v2:
n = n + 1
context.write(v, n)
El dataset Libros provisto por la cátedra almacena libros cada uno en un archivo separado. Dentro de cada archivo, la primera línea tiene el título del libro y luego en las líneas siguientes un párrafo por línea. Ejecute el proyecto WordCount dado por la cátedra para saber cuántas veces es utilizada cada palabra
En el ejercicio anterior ¿Cómo haría para obtener el top 20 de las palabras más usadas?
Modifique el proyecto WordCount para contar cuántas vocales, consonantes, dígitos, espacios y otros caracteres posee el data set Libros.
Indique si utilizando el dataset Libros es posible resolver los siguientes problemas:
a)
Obtener los títulos de todos los librosb)
Obtener la cantidad de palabras promedio por párrafoc)
Obtener la cantidad de párrafos promedio por librod)
Obtener la cantidad de caracteres del párrafo más extensoe)
Cantidad total de párrafos con diálogos (se entiende por párrafo con diálogo aquel que empieza con un guión)f)
El diálogo más largo (se entiende por diálogo a una secuencia de párrafos con diálogo que aparecen de manera consecutiva)g)
El top 20 de las palabras más usadas por cada libro
Una empresa proveedora de internet realizó una encuesta para conocer el grado de satisfacción de sus clientes, en un formulario web los clientes debían completar un campo con los textos "Muy satisfecho", "Algo satisfecho", "Poco satisfecho", “Disconforme” o "Muy disconforme". Utilice el dataset Encuesta para saber cuántos clientes están en cada una de las cinco categorías.
El dataset Inversionistas posee los nombres, dni, fecha de nacimiento (día, mes y año como campos separados) e importe invertido por diferentes personas en la apertura de un nuevo negocio en la ciudad. Se desea saber:
a)
El nombre del inversionista más jovenb)
El total del importe invertido por todos los inversionistasc)
El promedio de edad
Implemente una solución en MapReduce. ¿Se puede resolver los tres problemas en un único job?
Si contáramos con un cluster donde podemos configurar 100 nodos para la tarea de reduce ¿De qué manera se podrían usar esos 100 nodos en el ejemplo de los eventos POSITIVO, NEGATIVO y NEUTRO visto en la teoría?
¿En el dataset del ejercicio 1 de la práctica 1 indique para cada Job, si se vería beneficiado por una función combiner? En caso afirmativo, ¿cuál es la implementación de dicha función? ¿Qué datos recibe cada reduce, al utilizar la función combiner?
Implemente una función combiner para el problema del WordCount.
Implemente un job MapReduce para calcular el máximo, mínimo, promedio y desvío stándard de las ocurrencias de todas las palabras del dataset Libros.
Utilice el dataset Libros para implementar una aplicación MapReduce que devuelva como salida todos los párrafos que tienen una longitud mayor al promedio.
El dataset website tiene información sobre el tiempo de permanencia de sus usuarios en cada una de las páginas del sitio. El formato de los datos del dataset es:
<id_user, id_page, time>
Implemente una aplicación MapReduce, utilizando combiners en los casos que considere necesario, que calcule
a)
La página más visitada (la página en la que más tiempo permaneció) para cada usuariob)
El usuario que más páginas distintas visitóc)
. La página más visitada (en cuanto a cantidad de visitas, sin importar el tiempo de permanencia) por todos los usuarios.
Indique como queda el DAG del proceso completo (las tres consultas)