SlideShare una empresa de Scribd logo
1 de 16
INTRODUCCION
En la actualidad se han implementado cientos de cálculos que procesan grandes cantidades
de datos, a pesar de que la mayoría de estos cálculos son conceptualmente sencillos.
Sin embargo, los datos de entrada suelen ser grandes y los cálculos deben distribuirse entre
cientos o miles de máquinas para finalizar en un tiempo razonable, el cual genera varias líneas
de código complejo.
La abstracción presentada está inspirada en el mapa y reducir primitivas presentes en Lisp y
muchos otros lenguajes funcionales, para los cálculos se aplicaba un mapa de operación a
cada "registro“ lógico en nuestra entrada para calcular un conjunto de pares clave, y luego
aplicar un reducir operación a todos los valores que compartían la misma clave.
Las principales contribuciones de este trabajo son una interfaz simple y poderosa que permite la
paralelización y distribución automáticas de cálculos a gran escala, que tiene un alto rendimiento en
grandes grupos de PC comerciales.
Modelo de programación
El usuario de la biblioteca de MapReduce expresa el calculo como dos funciones: Mapa y
Reducir.
Mapa, escrito por el usuario, toma un par de entrada y produce un conjunto de intermedio pares
clave/valor, agrupados para pasar a la función reducir.
La función Reducir, también escrita por el usuario, acepta una clave intermedia y un conjunto
de valores para esa clave, fusiona estos valores para formar un conjunto de valores pequeños.
Esto nos permite manejar listas de valores que son demasiado grandes para caber en la
memoria.
Ejemplo:
Considere el problema de contar el número de ocurrencias de cada palabra en una gran
colección de documentos. El usuario escribiría un código similar al siguiente pseudocódigo:
map(String key, String value):
// key: document name
// value: document contents
for each word w in value:
EmitIntermediate(w, "1");
reduce(String key, Iterator values):
// key: a word
// values: a list of counts
int result = 0;
for each v in values:
result += ParseInt(v);
Emit(AsString(result));
El mapa emite cada palabra más un conteo asociado de ocurrencias (solo '1' en este ejemplo
simple). El reducir la función suma todos los recuentos emitidos para una palabra en particular.
Además, el usuario escribe código para completar en un mapreduce los nombres de la entrada,
salida y parámetros de ajuste opcionales.
Tipos
Aunque el pseudocódigo anterior está escrito en términos de entradas y salidas de cadenas,
conceptualmente, las funciones map y reduce proporcionadas por el usuario tienen tipos
asociados:
Mapa (k1,v1) → lista (k2, v2)
Reducir (k2, lista (v2)) → lista (v2)
Es decir, las claves y valores de entrada se extraen de un dominio diferente al de las claves y
valores de salida. Además, las claves y los valores intermedios son del mismo dominio que las
claves y los valores de salida.
Más ejemplos:
Aquí hay algunos ejemplos simples de programas interesantes que pueden expresarse
fácilmente como cálculos de MapReduce:
Grep distribuido: La función mapa emite una línea si coincide con un patrón proporcionado. La
función de reducción copia los datos intermedios suministrados en la salida.
Recuento de frecuencia de acceso a URL: La función de mapa procesa registros de
solicitudes y salidas de páginas web. La función reduce suma todos los valores para la misma
URL y emite un 〈URL, recuento total〉.
Gráfico de enlace web inverso: Las salidas de la función de mapa 〈objetivo, fuente〉 pares para
cada enlace a un objetivo URL para la página llamada fuente. La función de reducción
concatena la lista de todas las URL de origen asociadas con una URL de destino dada y emite el
par: 〈objetivo,lista(fuente)〉
Término-Vector por Host: Un vector de términos resume las palabras más importantes de un
documento como una lista de 〈palabra, frecuencia〉 pares.
La función mapa emite un 〈nombre de host, vector de término〉 par para cada documento de
entrada.
La función reduce suma todos los vectores desechando los términos poco frecuentes y luego
emite un último 〈nombre de host, vector de término〉 par.
Índice invertido: La función mapa analiza cada documento y emite una secuencia de 〈palabra,
identificación del documento〉 pares y la función reduce acepta todos los pares de una palabra
determinada, ordena los ID de documentos correspondientes y emite <palabra, lista(identificación
del documento)> par.
Clasificación distribuida: La función mapa extrae la clave de cada registro y emite una 〈clave,
registro〉 par. La función reduce emite todos los pares sin cambios.
Implementación
Son posibles muchas implementaciones diferentes de la interfaz MapReduce. La elección
correcta depende del entorno de trabajo:
1. Las máquinas suelen ser procesadores x86 de doble procesador que ejecutan Linux, con
2-4 GB de memoria por máquina.
2. Se utiliza hardware de red básico, normalmente 100 megabits/segundo o 1
gigabit/segundo a nivel de máquina.
3. Un clúster consta de cientos o miles de máquinas, que pueden presentar fallas comunes.
4. El almacenamiento lo proporcionan discos IDE económicos conectados directamente a las
máquinas individuales que utilizan un sistema de archivos distribuido para administrar los
datos.
5. Los usuarios envían trabajos a un sistema de programación. Cada trabajo consta de un
conjunto de tareas y el planificador lo asigna a un conjunto de máquinas disponibles dentro
de un clúster.
Descripción general de la ejecución
Las invocaciones de mapas se distribuyen en múltiples máquinas mediante la partición
automática de los datos de entrada en un conjunto de divisiones.
Las divisiones de entrada se pueden procesar en paralelo por diferentes máquinas. Reducir las
invocaciones se distribuyen particionando la clave intermedia espacio en R piezas utilizando una
función de partición, especificada por el usuario.
Cuando el programa de usuario llama a la función MapReduce ocurre la siguiente secuencia de
acciones que se muestra en la figura:
1. La biblioteca MapReduce en el programa de usuario primero divide los archivos de entrada
en M piezas de 16 megabytes a 64 megabytes (MB) por pieza, luego realiza copias del
programa en un grupo de máquinas.
2. Una de las copias del programa es especial: el maestro. El resto son trabajadores a los que
el maestro les asigna a cada uno una tarea de mapa o de reducción.
3. Un trabajador al que se le asigna la tarea de mapa lee el contenido de la división de entrada,
analiza los pares clave/valor de los datos y pasa cada par a la clave definida por el usuario,
que se almacenan en memoria.
4. Periódicamente, los pares almacenados en búfer se escriben en el disco local, se dividen en
R regiones por la función de Partición, se devuelven al maestro quien reenvía estas
ubicaciones a los trabajadores de reducción.
5. Cuando el maestro notifica a un trabajador de reducción sobre estas ubicaciones, utiliza
procedimientos remotos para leer los datos almacenados, después los ordena por las claves
intermedias para que se agrupen. Si la cantidad de datos intermedios es demasiado grande
para caber en la memoria, se utiliza una ordenación externa.
6. El trabajador de reducción itera sobre los datos intermedios ordenados y para cada clave
intermedia única, pasa la clave y el conjunto de valores intermedios al usuario Reducir función.
7. Cuando se hayan completado todas las tareas de asignación y reducción, el maestro activa
el programa de usuario, el cual vuelve al código de usuario.
Estructuras de datos maestros
El maestro es el conducto a través del cual se propaga la ubicación de las regiones de archivos
Intermedios desde las tareas de mapa a reducción, para las tareas de mapa Completadas
almacena las ubicaciones y tamaño de las R regiones de archivos intermedios se Actualiza
la ubicación después de cada tarea que se envía a reducción.
Tolerancia a fallas
Dado que la biblioteca de MapReduce usara cientos o miles de máquinas, también debe tolerar
las fallas sin problemas.
Fallo del trabajador
El maestro hace ping a cada trabajador periódicamente, si no recibe respuesta después de cierto
Tiempo se considera como fallido.
Después de que el trabajador complete una tarea de mapa o se encuentre en progreso de la tarea si
este es atendido por un trabajador fallido, vuelve a su estado inicial inactivo.
Las tareas de mapas completadas se vuelven a ejecutar en caso de falla porque su salida se
almacena en los discos locales de la máquina fallida. Si se atiende una tarea con mas de 2
trabajadores se notifican a los demás trabajadores para evaluar si se presentan fallas
Indicar su importancia y uso en el ambiente de “Cloud Computing”
Por lo general, las empresas prefieren ejecutar los clúster de mapreduce en recursos de nubes
públicas, privadas o híbridas antes que en hardware porque no solo se benefician de más
flexibilidad y disponibilidad.
Cuestionario:
1. ¿Cuáles son los principales competidores de MapReduce y cuáles son sus ventajas y
desventajas?
R. Entres sus competidores tenemos a mongoDB, apache spark, apache storm, lenguaje R,
Python. Las ventajas son: Fácil de programar, Escalabilidad, Alta tolerancia a fallas y Alto
rendimiento.
En cambio las desventajas son: No es adecuado para el cálculo en tiempo real, para la
informática en streaming, para el cálculo de DAG (gráfico dirigido):
2. ¿Cuál es el comportamiento de MapReduce cuando se necesita procesamiento en tiempo
real?
R. MapReduce puede no ser la opción más rápida para procesamiento en tiempo real ya que al
realizar procesos paralelos se tiene mayor retardo en el mismo cambio de función.
3. ¿Siempre es posible implementar una secuencia de funciones Map y Reduce para todas las
aplicaciones?
R. No siempre es muy fácil implementar todos y cada uno de los elementos en una secuencia de
funciones Map y Reduce en todos los casos aunque se tiene una alta tolerancia a fallas.
4. ¿Qué sucedió cuando los procesos intermedios necesitan comunicarse entre sí debido a que
los trabajos Map y Reduce se ejecutan de forma aislada?
R. Los procesos intermedios se ordenan para que los pares clave-valor sean contiguos (fase de
ordenación, sort fase), Si se ejecuta el modo distribuido estos necesitan ser primero copiados al
filesystem local en la fase de copia. Una vez que todos los datos están disponibles a nivel local
se adjuntan a una fase de adición, el archivo se fusiona (merge) de forma ordenado.
5. ¿Cuál es la diferencia para configurar y administrar un sistema independiente en comparación
con un sistema distribuido?
R. En un sistema distribuido se tienen Datos compartidos: Permite que distintos usuarios tengan
acceso a una base de datos. Dispositivos compartidos: Permite compartir un recurso costoso
entre distintos usuarios, como plotters o impresoras láser. Comunicación: Brinda la posibilidad
de comunicación de usuario a usuario Confiabilidad: Facilita la repartición de la carga de trabajo
entre las distintas computadoras con base en su funciones y capacidades, brindando una mayor
flexibilidad y confiabilidad al sistema.

Más contenido relacionado

Similar a mapreduce.pptx

Similar a mapreduce.pptx (20)

NIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓN
NIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓNNIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓN
NIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓN
 
Características Generales de EIGRP
Características Generales de EIGRPCaracterísticas Generales de EIGRP
Características Generales de EIGRP
 
00026966
0002696600026966
00026966
 
Resilient Distributed Dataset - Analisis paper
Resilient  Distributed Dataset - Analisis paper Resilient  Distributed Dataset - Analisis paper
Resilient Distributed Dataset - Analisis paper
 
Spark
SparkSpark
Spark
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
Computacion3
Computacion3Computacion3
Computacion3
 
Computacion3
Computacion3Computacion3
Computacion3
 
Programacion
ProgramacionProgramacion
Programacion
 
Informe funciones singulares
Informe funciones singularesInforme funciones singulares
Informe funciones singulares
 
Presentación1.pptx
Presentación1.pptxPresentación1.pptx
Presentación1.pptx
 
Cloud computinglabra
Cloud computinglabraCloud computinglabra
Cloud computinglabra
 
matlab (2).pptx
matlab (2).pptxmatlab (2).pptx
matlab (2).pptx
 
INTRODUCCION
INTRODUCCIONINTRODUCCION
INTRODUCCION
 
API Agregadas y Computo Masivo
API Agregadas y Computo MasivoAPI Agregadas y Computo Masivo
API Agregadas y Computo Masivo
 
ESTRUCTURA DE DATOS
ESTRUCTURA DE DATOSESTRUCTURA DE DATOS
ESTRUCTURA DE DATOS
 
ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++
 
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCIONLENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 

Último

Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digitalNayaniJulietaRamosRa
 
TIPOS DE LA PSICOPATOLOGÍA DE LA PERCEPCIÓN.pdf
TIPOS DE LA PSICOPATOLOGÍA DE LA PERCEPCIÓN.pdfTIPOS DE LA PSICOPATOLOGÍA DE LA PERCEPCIÓN.pdf
TIPOS DE LA PSICOPATOLOGÍA DE LA PERCEPCIÓN.pdfLUZMARIAAYALALOPEZ
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señorkkte210207
 
Unidad V. Disoluciones quimica de las disoluciones
Unidad V. Disoluciones quimica de las disolucionesUnidad V. Disoluciones quimica de las disoluciones
Unidad V. Disoluciones quimica de las disolucioneschorantina325
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
PPT-HISTORIA-6°-ABC.pptxjjjjjjjjjjjjjjjjjjjjjj
PPT-HISTORIA-6°-ABC.pptxjjjjjjjjjjjjjjjjjjjjjjPPT-HISTORIA-6°-ABC.pptxjjjjjjjjjjjjjjjjjjjjjj
PPT-HISTORIA-6°-ABC.pptxjjjjjjjjjjjjjjjjjjjjjjNachisRamos
 

Último (7)

Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digital
 
TIPOS DE LA PSICOPATOLOGÍA DE LA PERCEPCIÓN.pdf
TIPOS DE LA PSICOPATOLOGÍA DE LA PERCEPCIÓN.pdfTIPOS DE LA PSICOPATOLOGÍA DE LA PERCEPCIÓN.pdf
TIPOS DE LA PSICOPATOLOGÍA DE LA PERCEPCIÓN.pdf
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
 
Unidad V. Disoluciones quimica de las disoluciones
Unidad V. Disoluciones quimica de las disolucionesUnidad V. Disoluciones quimica de las disoluciones
Unidad V. Disoluciones quimica de las disoluciones
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
PPT-HISTORIA-6°-ABC.pptxjjjjjjjjjjjjjjjjjjjjjj
PPT-HISTORIA-6°-ABC.pptxjjjjjjjjjjjjjjjjjjjjjjPPT-HISTORIA-6°-ABC.pptxjjjjjjjjjjjjjjjjjjjjjj
PPT-HISTORIA-6°-ABC.pptxjjjjjjjjjjjjjjjjjjjjjj
 

mapreduce.pptx

  • 1. INTRODUCCION En la actualidad se han implementado cientos de cálculos que procesan grandes cantidades de datos, a pesar de que la mayoría de estos cálculos son conceptualmente sencillos. Sin embargo, los datos de entrada suelen ser grandes y los cálculos deben distribuirse entre cientos o miles de máquinas para finalizar en un tiempo razonable, el cual genera varias líneas de código complejo. La abstracción presentada está inspirada en el mapa y reducir primitivas presentes en Lisp y muchos otros lenguajes funcionales, para los cálculos se aplicaba un mapa de operación a cada "registro“ lógico en nuestra entrada para calcular un conjunto de pares clave, y luego aplicar un reducir operación a todos los valores que compartían la misma clave.
  • 2. Las principales contribuciones de este trabajo son una interfaz simple y poderosa que permite la paralelización y distribución automáticas de cálculos a gran escala, que tiene un alto rendimiento en grandes grupos de PC comerciales.
  • 3. Modelo de programación El usuario de la biblioteca de MapReduce expresa el calculo como dos funciones: Mapa y Reducir. Mapa, escrito por el usuario, toma un par de entrada y produce un conjunto de intermedio pares clave/valor, agrupados para pasar a la función reducir. La función Reducir, también escrita por el usuario, acepta una clave intermedia y un conjunto de valores para esa clave, fusiona estos valores para formar un conjunto de valores pequeños. Esto nos permite manejar listas de valores que son demasiado grandes para caber en la memoria.
  • 4. Ejemplo: Considere el problema de contar el número de ocurrencias de cada palabra en una gran colección de documentos. El usuario escribiría un código similar al siguiente pseudocódigo: map(String key, String value): // key: document name // value: document contents for each word w in value: EmitIntermediate(w, "1"); reduce(String key, Iterator values): // key: a word // values: a list of counts int result = 0; for each v in values: result += ParseInt(v); Emit(AsString(result));
  • 5. El mapa emite cada palabra más un conteo asociado de ocurrencias (solo '1' en este ejemplo simple). El reducir la función suma todos los recuentos emitidos para una palabra en particular. Además, el usuario escribe código para completar en un mapreduce los nombres de la entrada, salida y parámetros de ajuste opcionales. Tipos Aunque el pseudocódigo anterior está escrito en términos de entradas y salidas de cadenas, conceptualmente, las funciones map y reduce proporcionadas por el usuario tienen tipos asociados: Mapa (k1,v1) → lista (k2, v2) Reducir (k2, lista (v2)) → lista (v2) Es decir, las claves y valores de entrada se extraen de un dominio diferente al de las claves y valores de salida. Además, las claves y los valores intermedios son del mismo dominio que las claves y los valores de salida.
  • 6. Más ejemplos: Aquí hay algunos ejemplos simples de programas interesantes que pueden expresarse fácilmente como cálculos de MapReduce: Grep distribuido: La función mapa emite una línea si coincide con un patrón proporcionado. La función de reducción copia los datos intermedios suministrados en la salida. Recuento de frecuencia de acceso a URL: La función de mapa procesa registros de solicitudes y salidas de páginas web. La función reduce suma todos los valores para la misma URL y emite un 〈URL, recuento total〉. Gráfico de enlace web inverso: Las salidas de la función de mapa 〈objetivo, fuente〉 pares para cada enlace a un objetivo URL para la página llamada fuente. La función de reducción concatena la lista de todas las URL de origen asociadas con una URL de destino dada y emite el par: 〈objetivo,lista(fuente)〉
  • 7. Término-Vector por Host: Un vector de términos resume las palabras más importantes de un documento como una lista de 〈palabra, frecuencia〉 pares. La función mapa emite un 〈nombre de host, vector de término〉 par para cada documento de entrada. La función reduce suma todos los vectores desechando los términos poco frecuentes y luego emite un último 〈nombre de host, vector de término〉 par. Índice invertido: La función mapa analiza cada documento y emite una secuencia de 〈palabra, identificación del documento〉 pares y la función reduce acepta todos los pares de una palabra determinada, ordena los ID de documentos correspondientes y emite <palabra, lista(identificación del documento)> par. Clasificación distribuida: La función mapa extrae la clave de cada registro y emite una 〈clave, registro〉 par. La función reduce emite todos los pares sin cambios.
  • 8. Implementación Son posibles muchas implementaciones diferentes de la interfaz MapReduce. La elección correcta depende del entorno de trabajo: 1. Las máquinas suelen ser procesadores x86 de doble procesador que ejecutan Linux, con 2-4 GB de memoria por máquina. 2. Se utiliza hardware de red básico, normalmente 100 megabits/segundo o 1 gigabit/segundo a nivel de máquina. 3. Un clúster consta de cientos o miles de máquinas, que pueden presentar fallas comunes. 4. El almacenamiento lo proporcionan discos IDE económicos conectados directamente a las máquinas individuales que utilizan un sistema de archivos distribuido para administrar los datos. 5. Los usuarios envían trabajos a un sistema de programación. Cada trabajo consta de un conjunto de tareas y el planificador lo asigna a un conjunto de máquinas disponibles dentro de un clúster.
  • 9. Descripción general de la ejecución Las invocaciones de mapas se distribuyen en múltiples máquinas mediante la partición automática de los datos de entrada en un conjunto de divisiones. Las divisiones de entrada se pueden procesar en paralelo por diferentes máquinas. Reducir las invocaciones se distribuyen particionando la clave intermedia espacio en R piezas utilizando una función de partición, especificada por el usuario. Cuando el programa de usuario llama a la función MapReduce ocurre la siguiente secuencia de acciones que se muestra en la figura:
  • 10. 1. La biblioteca MapReduce en el programa de usuario primero divide los archivos de entrada en M piezas de 16 megabytes a 64 megabytes (MB) por pieza, luego realiza copias del programa en un grupo de máquinas. 2. Una de las copias del programa es especial: el maestro. El resto son trabajadores a los que el maestro les asigna a cada uno una tarea de mapa o de reducción. 3. Un trabajador al que se le asigna la tarea de mapa lee el contenido de la división de entrada, analiza los pares clave/valor de los datos y pasa cada par a la clave definida por el usuario, que se almacenan en memoria. 4. Periódicamente, los pares almacenados en búfer se escriben en el disco local, se dividen en R regiones por la función de Partición, se devuelven al maestro quien reenvía estas ubicaciones a los trabajadores de reducción.
  • 11. 5. Cuando el maestro notifica a un trabajador de reducción sobre estas ubicaciones, utiliza procedimientos remotos para leer los datos almacenados, después los ordena por las claves intermedias para que se agrupen. Si la cantidad de datos intermedios es demasiado grande para caber en la memoria, se utiliza una ordenación externa. 6. El trabajador de reducción itera sobre los datos intermedios ordenados y para cada clave intermedia única, pasa la clave y el conjunto de valores intermedios al usuario Reducir función. 7. Cuando se hayan completado todas las tareas de asignación y reducción, el maestro activa el programa de usuario, el cual vuelve al código de usuario.
  • 12.
  • 13. Estructuras de datos maestros El maestro es el conducto a través del cual se propaga la ubicación de las regiones de archivos Intermedios desde las tareas de mapa a reducción, para las tareas de mapa Completadas almacena las ubicaciones y tamaño de las R regiones de archivos intermedios se Actualiza la ubicación después de cada tarea que se envía a reducción. Tolerancia a fallas Dado que la biblioteca de MapReduce usara cientos o miles de máquinas, también debe tolerar las fallas sin problemas. Fallo del trabajador El maestro hace ping a cada trabajador periódicamente, si no recibe respuesta después de cierto Tiempo se considera como fallido. Después de que el trabajador complete una tarea de mapa o se encuentre en progreso de la tarea si este es atendido por un trabajador fallido, vuelve a su estado inicial inactivo. Las tareas de mapas completadas se vuelven a ejecutar en caso de falla porque su salida se almacena en los discos locales de la máquina fallida. Si se atiende una tarea con mas de 2 trabajadores se notifican a los demás trabajadores para evaluar si se presentan fallas
  • 14. Indicar su importancia y uso en el ambiente de “Cloud Computing” Por lo general, las empresas prefieren ejecutar los clúster de mapreduce en recursos de nubes públicas, privadas o híbridas antes que en hardware porque no solo se benefician de más flexibilidad y disponibilidad. Cuestionario: 1. ¿Cuáles son los principales competidores de MapReduce y cuáles son sus ventajas y desventajas? R. Entres sus competidores tenemos a mongoDB, apache spark, apache storm, lenguaje R, Python. Las ventajas son: Fácil de programar, Escalabilidad, Alta tolerancia a fallas y Alto rendimiento. En cambio las desventajas son: No es adecuado para el cálculo en tiempo real, para la informática en streaming, para el cálculo de DAG (gráfico dirigido): 2. ¿Cuál es el comportamiento de MapReduce cuando se necesita procesamiento en tiempo real? R. MapReduce puede no ser la opción más rápida para procesamiento en tiempo real ya que al realizar procesos paralelos se tiene mayor retardo en el mismo cambio de función.
  • 15. 3. ¿Siempre es posible implementar una secuencia de funciones Map y Reduce para todas las aplicaciones? R. No siempre es muy fácil implementar todos y cada uno de los elementos en una secuencia de funciones Map y Reduce en todos los casos aunque se tiene una alta tolerancia a fallas. 4. ¿Qué sucedió cuando los procesos intermedios necesitan comunicarse entre sí debido a que los trabajos Map y Reduce se ejecutan de forma aislada? R. Los procesos intermedios se ordenan para que los pares clave-valor sean contiguos (fase de ordenación, sort fase), Si se ejecuta el modo distribuido estos necesitan ser primero copiados al filesystem local en la fase de copia. Una vez que todos los datos están disponibles a nivel local se adjuntan a una fase de adición, el archivo se fusiona (merge) de forma ordenado.
  • 16. 5. ¿Cuál es la diferencia para configurar y administrar un sistema independiente en comparación con un sistema distribuido? R. En un sistema distribuido se tienen Datos compartidos: Permite que distintos usuarios tengan acceso a una base de datos. Dispositivos compartidos: Permite compartir un recurso costoso entre distintos usuarios, como plotters o impresoras láser. Comunicación: Brinda la posibilidad de comunicación de usuario a usuario Confiabilidad: Facilita la repartición de la carga de trabajo entre las distintas computadoras con base en su funciones y capacidades, brindando una mayor flexibilidad y confiabilidad al sistema.