spark notes flink español apache-beam

notes - ¿Qué es Apache Beam?



apache flink (2)

Apache Beam (Batch + strEAM) es un modelo y conjunto de API para hacer procesamiento de datos tanto por lotes como por secuencias. Fue abierto por Google (con Cloudera y PayPal) en 2016 a través de un proyecto de incubadora Apache.

La página cloud.google.com/dataflow/blog/… contrasta la Beam API con Apache Spark , que ha tenido un enorme éxito al proporcionar una API moderna y flexible y un conjunto de técnicas de optimización tanto para lotes como para transmisión al mundo de Hadoop. más allá.

Beam trata de llevar todo eso un paso más allá a través de un modelo que hace que sea fácil describir los diversos aspectos del procesamiento fuera de orden que a menudo es un problema al combinar el procesamiento por lotes y transmisión, como se describe en la Comparación de modelos de programación .

En particular, para citar la comparación, el modelo de Dataflow está diseñado para abordar, elegantemente y de una manera más modular, robusta y más fácil de mantener:

... las cuatro preguntas críticas que todos los profesionales del procesamiento de datos deben intentar responder al construir sus tuberías:

  • ¿Qué resultados se calculan? ¿Sumas, uniones, histogramas, modelos de aprendizaje automático?
  • ¿Dónde en el tiempo del evento se calculan los resultados? ¿El momento en que ocurrió originalmente cada evento afecta los resultados? ¿Los resultados se agregan en ventanas fijas, sesiones o una sola ventana global?
  • Cuando en el tiempo de procesamiento se materializan los resultados? ¿El tiempo que se observa cada evento dentro del sistema afecta los resultados? ¿Cuándo se emiten los resultados? Especulativamente, a medida que evolucionan los datos? Cuando los datos llegan tarde y los resultados deben ser revisados? Alguna combinación de estos?
  • ¿Cómo se relacionan los refinamientos de los resultados? Si llegan datos adicionales y cambian los resultados, ¿son independientes y distintos, se basan uno en el otro, etc.?

Las tuberías descritas en Beam pueden, a su vez, ejecutarse en Spark, Flink, la oferta de Dataflow de Google en la nube y otros "tiempos de ejecución", incluida una opción de máquina local "Directa".

Una variedad de idiomas son compatibles con la arquitectura. El SDK de Java ya está disponible. Un Dataflow Python SDK está a punto de lanzarse, y otros están previstos para Scala, etc.

Ver la fuente en Mirror of Apache Beam

Estaba revisando las publicaciones de Apache y encontré un nuevo término llamado Beam. ¿Alguien puede explicar qué es exactamente Apache Beam? Intenté buscar en Google pero no pude obtener una respuesta clara.


Apache Beam es un modelo unificado, de código abierto, para definir y ejecutar canalizaciones de procesamiento de datos en paralelo tanto por lotes como en tiempo real, así como un conjunto de SDK específicos del idioma para construir canalizaciones y Runners específicos del tiempo de ejecución para ejecutarlos.

Historia: el modelo detrás de Beam evolucionó a partir de una serie de proyectos internos de procesamiento de datos de Google, incluidos MapReduce , FlumeJava y Millwheel . Este modelo se conocía originalmente como el " Modelo de flujo de datos " y se implementó por primera vez como Google Cloud Dataflow , incluido un SDK de Java en GitHub para escribir tuberías y un servicio completamente administrado para ejecutarlos en Google Cloud Platform. Otros miembros de la comunidad comenzaron a escribir extensiones, como Spark Runner , Flink Runner y Scala SDK . En enero de 2016, Google y una serie de socios presentaron el Modelo de Programación de Dataflow y la porción de SDK como una wiki.apache.org/incubator/BeamProposal Incubadora de Apache, bajo el nombre de Apache Beam (procesamiento batch + strEAM unificado). Apache Beam se graduated de la incubación en diciembre de 2016.

Recursos adicionales para aprender el Modelo de Haz: