Flink1:简介

Flink1:简介

官网

Flink简介

Flink实时流处理方面现在处理实时数据较常用的架构 Flink + Kafka。
  • 批流一体:统一批处理、流处理
  • 分布式:Flink程序可以运行在多台机器上
  • 高性能:处理性能比较高
  • 高可用:Flink支持高可用性(HA)
  • 准确:Flink可以保证数据处理的准确性

Flink应用场景

  • 实时监控系统
  • 推荐系统
  • 日志分析系统

处理无界和有界数据

  1. 无界流 有定义流的开始,但没有定义流的结束。它们会无休止地产生数据。无界流的数据必须持续处理,即数据被摄取后需要立刻处理。我们不能等到所有数据都到达再处理,因为输入是无限的,在任何时候输入都不会完成。处理无界数据通常要求以特定顺序摄取事件,例如事件发生的顺序,以便能够推断结果的完整性。
  1. 有界流 有定义流的开始,也有定义流的结束。有界流可以在摄取所有数据后再进行计算。有界流所有数据可以被排序,所以并不需要有序摄取。有界流处理通常被称为批处理。
notion image

Flink核心模块组成

 

部署方式

Flink的部署方式非常多,Local、Standalone、Yarn、Mesos、Docker、Kubernetes、AWS都可以支持。其中,我们主要关注Local、Standalone、Yarn三种。
  • Local:不单独部署运行环境,在代码中直接调试。后续一些简单的代码样例就会以Local方式调试。
  • Standalone:独立运行环境。这种模式下,Flink将自己完全管理运行资源。这种方式,其实资源利用率是比较低的。
  • Yarn:以Hadoop提供的Yarn作为资源管理服务。这样可以更高效的使用集群的机器资源。