Apache Flink - Introdução
Apache Flink é uma estrutura de processamento em tempo real que pode processar dados de streaming. É uma estrutura de processamento de stream de código aberto para aplicativos de tempo real de alto desempenho, escalonáveis e precisos. Possui um modelo de streaming verdadeiro e não aceita dados de entrada como lote ou microlotes.
O Apache Flink foi fundado pela empresa Data Artisans e agora é desenvolvido sob a Licença Apache pela Comunidade Apache Flink. Esta comunidade tem mais de 479 contribuidores e mais de 15500 commits até agora.
Ecossistema no Apache Flink
O diagrama abaixo mostra as diferentes camadas do ecossistema Apache Flink -
Armazenamento
Apache Flink tem várias opções de onde pode ler / gravar dados. Abaixo está uma lista de armazenamento básico -
- HDFS (Hadoop Distributed File System)
- Sistema de arquivos local
- S3
- RDBMS (MySQL, Oracle, MS SQL etc.)
- MongoDB
- HBase
- Apache Kafka
- Apache Flume
Implantar
Você pode implantar o Apache Fink no modo local, modo de cluster ou na nuvem. O modo de cluster pode ser autônomo, YARN, MESOS.
Na nuvem, o Flink pode ser implantado em AWS ou GCP.
Núcleo
Esta é a camada de tempo de execução, que fornece processamento distribuído, tolerância a falhas, confiabilidade, capacidade de processamento iterativo nativo e muito mais.
APIs e bibliotecas
Esta é a camada superior e a camada mais importante do Apache Flink. Possui API Dataset, que cuida do processamento em lote, e API Datastream, que cuida do processamento de stream. Existem outras bibliotecas como Flink ML (para aprendizado de máquina), Gelly (para processamento de gráficos), Tables for SQL. Esta camada fornece diversos recursos para o Apache Flink.