🐿 [APACHE FLINK] 🔎 ¿QUÉ es APACHE FLINK? 💼 ¿CÓMO INSTALAR APACHE FLINK? ✔

Enviado por admin el Sáb, 06/03/2021 - 13:24

🐿 [APACHE FLINK] 🔎 ¿QUÉ es APACHE FLINK? 💼 ¿CÓMO INSTALAR APACHE FLINK? ✔

Hola a todos y bienvenidos de nuevo a este blog! Hoy os enseñaré que es apache Flink y como instalarlo en una máquina con Ubuntu 18.04.

¿Qué es Apache Flink?

Apache Flink es un motor de procesamiento de datos que te permite realizar cálculos para cualquier tipo de flujo de datos. Esta herramienta es de código abierto y se caracteriza por realizar el procesamiento de datos de forma distribuida y con alta disponibilidad. Se puede ejecutar en cualquier entorno y los cálculos se pueden realizar en cualquier memoria y escala. El procesamiento se realiza generalmente a alta velocidad y baja latencia. Además, los datos se generan a una velocidad muy alta, permitiéndote realizar el procesado en tiempo real. Este Framework está escrito en Java y Scala. Procesa solo los datos que se modifican y, por lo tanto, es más rápido que Spark.

El desarrollo de Apache Flink comenzó en 2009, como un proyecto de investigación en la universidad técnica de Berlín, bajo el nombre de  Stratosphere. Su objetivo era construir una plataforma de análisis de Big Data de próxima generación. Fue aceptado como proyecto de Apache Incubator el 16 de abril de 2014. Flink es una palabra alemana que significa rápido / ágil. El logo de Apache Flink es una ardilla, en armonía con el ecosistema Hadoop.

Te permite realizar procesamiento:

  • por lotes
  • interactivo
  • de secuencias en tiempo real
  • de gráficos
  • iterativo
  • en memoria

Flink es una alternativa a MapReduce, procesa datos más de 100 veces más rápido que MapReduce. Es independiente de Hadoop pero puede usar HDFS para leer, escribir, almacenar y procesar los datos. 

Flink no proporciona su propio sistema de almacenamiento de datos, ya que es solo un motor de cálculo, pero proporciona conectores de fuente y receptor de datos a sistemas como Amazon Kinesis, Apache Kafka, HDFS, Apache Cassandra y ElasticSearch.

Apache Flink te permite procesar flujos de datos limitados y no limitados. Que quiere decir esto, pues bien. Flujo de datos limitado es el flujo que tiene puntos de inicio y finalización específicos, es decir un flujo finito. Mientras que un Flujo de datos ilimitado es aquel flujo que no tiene un punto final específico. Una vez iniciados, no terminan. Para procesar corrientes ilimitadas, debe mantenerse la secuencia de la corriente. Flink toma estos flujos como entrada, transforma los datos, realiza análisis sobre ellos y presenta uno o más flujos de salida como resultado.

Por simplificarlo, Flink es capaz de crear ventanas de tiempo, por ejemplo de un minuto, y cuando ese minuto termina analizar todo lo que ha pasado en ese minuto. Y además es capaz de analizar ventas que nunca termina, por ejemplo, escuchar de una fuente de entrada de la que está constantemente procesando datos.

Este último ejemplo es perfecto para explicar cómo Apache Flink nos facilita el trabajo. Siendo el principal objetivo de la misma reducir la complejidad del procesamiento de Big Data en tiempo real. Procesa eventos a alta velocidad y baja latencia.  Flink también tiene una alta tolerancia a fallas, por lo que si algún sistema falla en el proceso no se verá afectado. Continuará en otros sistemas del clúster. Flink tiene procesamiento en memoria, por lo que tiene una gestión de memoria excepcional.


Apache Flink funciona a la manera de maestro-esclavo. Tiene un procesamiento distribuido que es lo que le da a Flink su velocidad ultrarrápida. Tiene un nodo maestro que gestiona trabajos y nodos esclavos que ejecuta el trabajo.

Apache Flink

Ventajas

Es el futuro del procesamiento de Big Data. A continuación se presentan algunas de las ventajas mencionadas.

  • Fuente abierta
  • Alto rendimiento y baja latencia
  • Procesamiento de datos de flujo distribuido
  • Tolerancia a fallos
  • Computación iterativa
  • Optimización del programa
  • Plataforma híbrida
  • Análisis gráfico
  • Aprendizaje automático
  • Habilidades requeridas

El motor de procesamiento de datos central de Apache Flink está escrito en Java y Scala. Entonces, cualquiera que tenga un buen conocimiento de Java y Scala puede trabajar con Apache Flink. Además, los programas se pueden escribir en Python y SQL. Junto con el lenguaje de programación, también se deben tener habilidades analíticas para utilizar los datos de una mejor manera.

¿Por qué deberíamos usarlo?

Tiene un extenso conjunto de características. Se puede utilizar en cualquier escenario, ya sea en el procesamiento de datos en tiempo real o en el procesamiento iterativo. Se puede implementar muy fácilmente en un entorno diferente. Proporciona un marco más potente para procesar datos de transmisión. Tiene un algoritmo más eficiente y poderoso para jugar con datos. Es la próxima generación de macrodatos. Es mucho más rápido que cualquier otro motor de procesamiento de Big Data.

¿Por qué necesitamos Apache Flink?

Hasta ahora teníamos Apache Spark para el procesamiento de Big Data. Pero es una versión mejorada de Apache Spark. En el núcleo de Apache Flink se encuentra un procesador de datos de flujo distribuido que aumenta la velocidad del procesamiento de datos de flujo en tiempo real en muchos aspectos. Apache Flink también facilita el análisis de gráficos. Además, es de código abierto. Por lo tanto, es la herramienta de próxima generación para Big Data.

Conclusión

Con todos los grandes datos y análisis en tendencia, es una tecnología de nueva generación que lleva el procesamiento de datos en tiempo real a un nivel totalmente nuevo. Es similar a Apache Spark pero tiene algunas características mejoradas.

¿Cómo instalar Apache Flink?

Lo primero que haremos será conectarnos a la máquina donde queramos realizar la instalación por ssh y hacer login como root.

Una vez seamos super usuario actualizaremos la máquina. Os dejo aquí abajo en la caja de descripción del vídeo los comando que ejecutaré, para que os sea más fácil realizar la instalación mediante copiar/pegar

> sudo apt update

Una vez se ha actualizado, procederemos a instalar java

> apt-get install default-jre

ahora instalaremos jdk

> apt install openjdk-11-jdk-headless

Ejecutamos el comando > java -version para comprobar que tenemos instalado la versión correcta de java, en mi caso será la 11

Descargamos Apache Flink de la web oficial

> wget https://apache.brunneis.com/flink/flink-1.12.1/flink-1.12.1-bin-scala_2.11.tgz

> tar xzf flink-1.12.1-bin-scala_2.11.tgz

Descomprimimos el fichero .tgz

Nos movemos dentro de la carpeta que se crea al descomprimir el anterior fichero e iniciamos Apache Flink

> cd flink-1.12.1/
> ./bin/start-cluster.sh

Con el comando jps comprobaremos que se ha iniciado correctamente

> jps


Ahora abriremos un navegador y pondremos la ip pública de la máquina donde esté instalado Apache Flink seguido del puerto 8081.

En caso de haberlo instalado en la propia máquina en la que estamos, escribiremos http://127.0.0.1:8081

Aquí podremos ver la interfaz web de Apache Flink, la cual nos permite tanto monitorizar los procesos que tengamos ejecutándose como incluso cargar manualmente alguno nuevo.