Apache Flink - Introducción

Apache Flink es un marco de procesamiento en tiempo real que puede procesar datos de transmisión. Es un marco de procesamiento de flujo de código abierto para aplicaciones de alto rendimiento, escalables y precisas en tiempo real. Tiene un modelo de transmisión real y no toma datos de entrada como lotes o micro lotes.

Apache Flink fue fundado por la empresa Data Artisans y ahora se desarrolla bajo la licencia Apache por Apache Flink Community. Esta comunidad tiene más de 479 colaboradores y más de 15500 confirmaciones hasta ahora.

Ecosistema en Apache Flink

El diagrama que se muestra a continuación muestra las diferentes capas del ecosistema Apache Flink:

Almacenamiento

Apache Flink tiene múltiples opciones desde donde puede leer / escribir datos. A continuación se muestra una lista de almacenamiento básica:

  • HDFS (sistema de archivos distribuido Hadoop)
  • Sistema de archivos local
  • S3
  • RDBMS (MySQL, Oracle, MS SQL, etc.)
  • MongoDB
  • HBase
  • Apache Kafka
  • Apache Flume

Desplegar

Puede implementar Apache Fink en modo local, modo de clúster o en la nube. El modo de clúster puede ser independiente, YARN, MESOS.

En la nube, Flink se puede implementar en AWS o GCP.

Núcleo

Esta es la capa de tiempo de ejecución, que proporciona procesamiento distribuido, tolerancia a fallas, confiabilidad, capacidad de procesamiento iterativo nativo y más.

API y bibliotecas

Esta es la capa superior y la capa más importante de Apache Flink. Tiene API de conjunto de datos, que se encarga del procesamiento por lotes, y API de Datastream, que se encarga del procesamiento de la transmisión. Hay otras bibliotecas como Flink ML (para aprendizaje automático), Gelly (para procesamiento de gráficos), Tablas para SQL. Esta capa proporciona diversas capacidades a Apache Flink.