Apache flink, Instalación y Uso

Apache flink, Instalación y Uso

Apache flink es un sistema que nos permite realizar analisis basado en Stream (o flujos). Al trabajar sobre flujos, la escalabilidad del mismo es alta y nos da la posiblidad de integrarlo directamente con Apache Kafka utilizando plugins.

Requisitos

Para poder utilizar apache flink se requieren los siguientes componentes:

Instalación

Apache Flink puede ser utilizado de dos maneras distintas, como servidor o embebido en un servico.

Descomprimir

Para instalar como servidor se deben realizar los siguientes pasos:

$ tar xvfz flink-1.17.0-bin-scala_2.12.tgz

Esto nos descomprime el producto en la carpeta flink-1.17.0, nos ubicamos en la carpeta bin y ejecutamos lo siguiente:

$ ./start-cluster.sh

Starting cluster.
Starting standalonesession daemon on host ourhost.local.
Starting taskexecutor daemon on host ourhost.local.

Una vez que inicio el servicio podremos acceder a la pantalla de administración, en donde se pueden agregar nuevos servicios, ver el estado de los servicios ya existentes o eliminarlos.

Para acceder a la consola de admnistración en nuestro navegador ponemos la siguiente dirección web.

http://localhost:8081

Flink Console

Ejecutano un ejemplo

Una vez instalada la consola podemos agregar un ejemplo para ver como se ejecuta el mismo y poder comprender la utilización de la consola administrativa.

En la pantalla vamos a la opción del menu y presionamos Submit a New Job y vamos a la carpeta example/streamng y seleccionamos el jar WordCount.jar (es un ejemplo contenido en apache flink), y veremos la siguiente pantalla:

Flink Console

Una vez cargado el ejemplo, presionamos el botón Submit

Ahora que es lo que podemos ver. Lo que podremos visualizar sera la siguiente pantalla.

Flink Job Working

Usando Kafka

Ahora veremos un ejemplo de como utilizar kafka con Flink, siguiendo la linea de contar las palabras. El ejemplo utiliza los siguientes componentes.

Streams:

  • countIn: en este stream se ingresan las palabras a contar.
  • countOut: en este stream se obtiene el resultado..

Kafka UI

Enviamos el mensaje.

Message Kafka

Y obtenendremos.

Message Kafka