Hacía mucho tiempo que no escribía en el blog...En todo este tiempo me han pasado muchas cosas y también ha habido grandes cambios en tecnología. El Big Data por fin resulta una realidad, he podido experimentar y disfrutar de grandes proyectos e implementaciones sobre esta tecnología y esto solo acaba de empezar. Donde ahora predomina el procesamiento bacth , este año la estrella será el procesamiento en streaming. Donde antes me pedían batch y procesamiento veloz de grandes cantidades de datos cada vez recibiré más peticiones de procesamiento en tiempo real. Las empresas ya comienzan a estar preparadas para ello. Este hecho supone una nueva revolución(otra más) dentro del mundo del Big Data. Echemos un vistazo al panorama que se nos avecina.
La demanda de procesamiento de datos de forma cada vez más rápida ha ido en aumento y el procesamiento de datos en tiempo real en streaming parece ser la respuesta. Mientras que Apache Spark se sigue utilizando en muchas organizaciones para el procesamiento de datos en Big Data, otras alternativas como Apache Flink, Apache Apex o Apache Samza vienen empujando muy fuerte. De hecho, muchos piensan que Apache Flink tiene todo el potencial de reemplazar a Apache Spark debido a su capacidad de procesar datos en tiempo real. Por supuesto, la opinión sobre si Flink puede reemplazar a Spark todavía resulta algo ligera debido a que Flink aún tiene pocas puestas en producción de gran envergadura. Pero el procesamiento en tiempo real y la baja latencia de datos son dos de sus características más atractivas. Al mismo tiempo, se debe considerar que Apache Spark probablemente no perderá a corto plazo su posición porque sus capacidades de procesamiento batch siguen siendo relevantes.
Hay que tener en cuenta que aparte de todas las ventajas del procesamiento por lotes, un procesamiento en streaming que tiene baja latencia de datos aporta más información sobre datos rápidamente. Por lo tanto, ofrece la posibilidad de averiguar qué está pasando en tiempo real. Además de un procesamiento más rápido, también hay otro beneficio significativo: se dispone de más tiempo para diseñar una respuesta apropiada a los eventos. Por ejemplo, en el caso de detección de anomalías, una menor latencia y una detección más rápida permite identificar la mejor respuesta que es clave para evitar daños en casos como ataques web, daños en infraestructura o equipos industriales, respuesta ante peticiones de clientes. Por lo tanto, puede evitar pérdidas sustanciales.
Un vistazo a las alternativas
Apache Flink es una herramienta de procesamiento de datos que permite el procesamiento de grandes volúmenes de datos rápidamente con baja latencia de datos y alta tolerancia a fallos en sistemas distribuidos a gran escala. Su característica definitoria es su capacidad de procesar datos en tiempo real.
Apache Flink comenzó como un proyecto académico de código abierto, llamado entonces Stratosphere. Más tarde, se convirtió en un incubator de Apache Software Foundation. Para evitar conflictos de nombre con otro proyecto, el nombre cambió a Flink.
Desde que fue agregado a la Fundación de Software Apache, tuvo un aumento bastante rápido como una herramienta de procesamiento de datos y en 8 meses, había comenzado a captar la atención de un público más amplio.
Apache Apex posibilita procesar grandes cantidades de datos in-motion a través de unica plataforma altamente escalable, fácilmente operable, de alto rendimiento, de baja latencia y tolerante a fallos con garantía de procesamiento correcto. Una plataforma nativa de Hadoop YARN de nivel empresarial, Apache Apex con su arquitectura de procesamiento de flujo unificado puede utilizarse para casos de uso en tiempo real y de procesamiento batch. También proporciona una API sencilla que permite a los usuarios escribir o reutilizar código Java genérico para configurar aplicaciones de datos grandes
Comparación entre Spark y Flink
Procesamiento de datos
Spark procesa los datos en modo batch mientras que Flink procesa los datos en tiempo real. Spark procesa fragmentos de datos, conocidos como RDD, mientras que Flink puede procesar filas tras filas de datos en tiempo real. Por lo tanto, aunque una latencia de datos mínima siempre está allí con Spark, no es así con Flink.
Iteraciones
Spark admite iteraciones de datos en lotes, pero Flink puede iterar sus datos de forma nativa usando su arquitectura streaming.
Comparación con APEX
Apex es una plataforma YARN, lo que significa que está vinculado a Hadoop (Flink y Spark por ejemplo no). Su base es la biblioteca Apache Malhar que le ofrece bloques de construcción (operadores) para el procesamiento de flujo. Basta con derivar su clase de su operador (por ejemplo, el operador AbstractFileInputOperator) e implementar las clases que necesita
En resumen, se avecina un año apasionante siguiendo de cerca la evolución de estas herramientas, si tenemos en cuenta además el crecimiento del machine laerning en streaming, los cambios tecnológicos que se avecinan resultan apasionantes
No hay comentarios:
Publicar un comentario