Desarrollo de Big Data: Introducción al modelo de programación Flink (4)

Flink es un marco de procesamiento de flujo de datos grandes de código abierto. Puede procesar por lotes y transmitir al mismo tiempo. Tiene las ventajas de tolerancia a fallas, alto rendimiento y baja latencia. Este artículo describe brevemente el modelo de programación de flink.

Tipo de conjunto de datos:

  • Conjuntos de datos infinitos: conjuntos de datos de integración continua sin fin

  • Conjuntos de datos limitados: conjuntos de datos limitados que no cambiarán

Los conjuntos de datos infinitos comunes son:

  • Datos interactivos en tiempo real entre usuarios y clientes.

  • Registros generados por la aplicación en tiempo real

  • Registros de transacciones en tiempo real en los mercados financieros.

  • ...

¿Cuáles son los modelos de operación de datos?

  • Transmisión: mientras los datos hayan estado en producción, el cálculo continuará ejecutándose

  • Procesamiento por lotes: ejecute cálculos dentro de un tiempo predefinido y libere recursos de la computadora cuando finalice

Flink puede procesar conjuntos de datos acotados y conjuntos de datos no acotados. Puede procesar datos en una secuencia o lote.

¿Qué es flink?

De abajo hacia arriba:

1. Implementación: Flink admite operaciones locales, se puede ejecutar en un clúster independiente o en un clúster administrado por YARN o Mesos, y también se puede implementar en la nube. 2. Operación: El núcleo de Flink es un motor de transmisión de datos distribuidos, lo que significa que los datos se procesan en forma de un evento a la vez. 3. API: DataStream, DataSet, Table, SQL API. 4. Biblioteca extendida: Flink también incluye una biblioteca de códigos dedicada para el procesamiento de eventos complejos, aprendizaje automático, procesamiento de gráficos y compatibilidad con Apache Storm.

Modelo de programación de flujo de datos Flink

Niveles de abstracción Flink proporciona diferentes niveles de abstracción para desarrollar aplicaciones de transmisión o por lotes.

La capa inferior proporciona una secuencia con estado, que se integrará en la API de DataStream a través de una función de proceso. Permite a los usuarios procesar libremente eventos de uno o más datos de secuencia y usar estados consistentes y tolerantes a fallas. Además, los usuarios pueden registrar el tiempo del evento y manejar las devoluciones de llamadas de eventos, de modo que el programa pueda realizar cálculos complejos.

DataStream / DataSet API es la API principal proporcionada por Flink. DataSet maneja conjuntos de datos acotados y DataStream maneja flujos de datos acotados o no acotados. Los usuarios pueden usar varios métodos (map / flatmap / window / keyby / sum / max / min / avg / join, etc.) para convertir / calcular los datos.

La API de tabla es un DSL declarativo centrado en la tabla, donde la tabla puede cambiar dinámicamente (al expresar datos de transmisión). Table API proporciona operaciones como seleccionar, proyectar, unir, agrupar, agregar, etc., pero es más conciso de usar (menos código).

Puede cambiar sin problemas entre tablas y DataStream / DataSet, y también permitir que los programas mezclen Table API con DataStream y DataSet.

  • El nivel más alto de abstracción proporcionado por Flink es SQL. Esta capa de abstracción es similar a la API de tabla en sintaxis y expresión, pero expresa el programa en forma de expresiones de consulta SQL. La abstracción de SQL interactúa estrechamente con la API de tabla, y las consultas SQL se pueden ejecutar directamente en las tablas definidas por la API de tabla.

Programa Flink y estructura de flujo de datos

La estructura de la aplicación Flink se muestra arriba:

  • Fuente: fuente de datos. Las fuentes de Flink para el procesamiento de flujo y el procesamiento por lotes son aproximadamente 4 tipos: fuente basada en la colección local, fuente basada en archivos, fuente basada en socket de red y fuente personalizada. Las fuentes personalizadas se encuentran comúnmente en Apache kafka, Amazon Kinesis Streams, RabbitMQ, Twitter Streaming API, Apache NiFi, etc. Por supuesto, también puede definir su propia fuente. Si desea aprender Big Data sistemáticamente, puede unirse a la tecnología de Big Data para conocer la deducción : 522189307

  • Transformación: varias operaciones para la conversión de datos, incluyendo Map / FlatMap / Filter / KeyBy / Reduce / Fold / Aggregations / Window / WindowAll / Union / Window join / Split / Select / Project, etc. Hay muchas operaciones que pueden convertir los datos en usted Los datos que quieres.

  • Sink: receptor, donde Flink enviará los datos convertidos y calculados, es posible que deba almacenarlos. Los sumideros comunes de Flink pueden ser los siguientes: escribir archivos, imprimir, escribir sockets y sumideros personalizados. Los sumideros personalizados son comunes, como Apache kafka, RabbitMQ, MySQL, ElasticSearch, Apache Cassandra, Hadoop FileSystem, etc. Del mismo modo, también puede definir su propio sumidero.

207 artículos originales publicados · elogiados 5 · 40,000+ vistas

Supongo que te gusta

Origin blog.csdn.net/mnbvxiaoxin/article/details/105519419
Recomendado
Clasificación