2012-01-01 30 views
22

¿Hay algún paradigma alternativo a MapReduce (Google, Hadoop)? ¿Hay alguna otra manera razonable de cómo dividir & fusionar grandes problemas?Alternativas de MapReduce

+0

MapReduce no es un algoritmo o paradigma, es tecnología. –

+4

@ralu: hay muchas maneras de lidiar con grandes problemas.MapReduce DEFINITIVAMENTE es solo uno de ellos y DEFINITIVAMENTE es a la vez paradigma y algoritmo. También su implementación se convierte en tecnología, pero no me interesan las implementaciones sino las ideas. Gracias. – Cartesius00

+0

¿Por qué piensas en tu problema como dividir y fusionar? Solo necesitas resolver el problema. Por ejemplo, Apache Pig trata datos con SQL como el lenguaje. Y no hay una manera de dividir y combinar, aunque puede ejecutarse en un clúster de cientos de máquinas y usa Hadoop como plataforma. –

Respuesta

12

Definitivamente. Consulte, por ejemplo, Bulk Synchronous Parallel. Mapa/Reducir es, de hecho, una forma muy restringida de reducir problemas, sin embargo, esa restricción lo hace manejable en un marco como Hadoop. La pregunta es si es menos problemático presionar su problema en una configuración de Mapa/Reducir, o si es más fácil crear un esquema de paralelización específico de dominio y tener que encargarse de todos los detalles de la implementación usted mismo. Pig, de hecho, es solo una capa de abstracción sobre Hadoop que automatiza muchas transformaciones estándar de problemas desde no-Map-Reduce-y a Map-Reduce-compatible.

Editar 1/26/13: Encontrado un nice up-to-date overview here

+3

[Apache Hama] (http://incubator.apache.org/hama/) implementa BSP. Hama ha sido portado a [YARN (Yet Another Resource Manager)] (http://wiki.apache.org/hama/GettingStartedYARN) que es parte de Hadoop 0.23. Consulte este [blog] (http://codingwiththomas.blogspot.com/) en Apache Hama. –

+0

Gracias Praveen;) Visite nuestro sitio web y wiki para obtener más información acerca de hama http://incubator.apache.org/hama/ –

9

Phil Colella identificó siete métodos numéricos para la computación científica sobre la base de los patrones de dispersión y la recolección de datos entre nodos de procesamiento, y los llamó 'empequeñece'. Estos se han añadido a por otros, una lista está disponible en los Dwarf Mine:

  1. Dense Álgebra Lineal
  2. Sparse de álgebra lineal Métodos
  3. espectrales
  4. Métodos
  5. N-Body
  6. Grids Estructurados
  7. Rejillas no estructuradas
  8. MapReduce
  9. Combinational Logi c
  10. Gráfico Transversal
  11. Programación Dinámica
  12. dar marcha atrás y
  13. Modelos gráficos Branch-and-Bound Máquinas
  14. de Estados Finitos
0

de Microsoft Dryad se afirma que es más general que MapReduce.

2

Actualización (agosto de 2014): La estratosfera ahora se llama Apache Flink (incubando).

Eche un vistazo a Stratosphere. Es otro tiempo de ejecución de Big Data que ofrece más operadores (mapa, reducir, unir, unir, cruzar, iterar, ...). También permite definir gráficos de flujo de datos avanzados (con Hadoop MR, tendría que encadenar trabajos).

Stratosphere también es compatible con BSP con su abstracción de procesamiento gráfico (llamada Spargel).

Si le gusta leer artículos científicos, eche un vistazo a Nephele/PACTs: A Programming Model and Execution Framework for Web-Scale Analytical Processing, explica los antecedentes teóricos del sistema.

Otro sistema en el campo es Spark que tiene su propio modelo (RDD). Dado que BSP ha sido mencionado aquí, también eche un vistazo a GraphLab, la oferta es una alternativa a BSP.