Flink的概述

什么是flink

       Apache Flink是一个开源的分布式,高性能,高可用,准确的流处理框架。支持实时流处理和批处理
       Apache Flink是一个框架和分布式处理引擎,用于在无界和有界数据流上进行有状态计算。Flink被设计用于在所有常见的集群环境中运行,以内存形式和任何规模执行计算
在这里插入图片描述
数据源→数据处理和分析→数据写入到目的地

组件

数据源:

  1. Clicks:点击流
  2. Logs:物联网
  3. IOT:交易数据

输出位置:

  1. Application:应用 比如邮件的api,短信的api
  2. EvenetLog:消息队列,下一个flink的输入
  3. DataBase:数据库

资源调度:

  1. K8s
  2. Yarn
  3. Mesos

存储:

  1. HDFS
  2. S3
  3. NFS

有界和无界数据

  1. 有界数据
           有一个定义好的开始和结束。在执行任何计算之前,可以通过摄取所有数据来处理有界流。处理有界流不需要有序摄取,因为有界数据集总是可以排序的。有界流的处理也被称为批处理

  2. 无界数据
           无界流有一个开始,但没有定义的结束。它们不会在生成数据时终止并提供数据。必须连续处理无边界流,事件被摄入后必须立即处理。等待所有输入数据到达是不可能的,因为输入是无界的,并且不会在任何时间点完成。处理无界数据通常需要以特定的顺序接收事件,例如事件发生的顺序,以便能够推断出结果的完整性

状态事件驱动的api

在这里插入图片描述
       Processfunction是Flink提供的最富表现力的函数接口,Flink提供processfunction来处理来自一个或两个输入流事件。Process函数提供了对事件和状态的细粒度控制。ProcessFunction可以任意修改它的状态并注册定时器,从而在将来触发回调函数。因此,Processfunction可以根据许多有状态事件驱动的应用程序的需要实现每个事件的复杂业务逻辑。

流或批处理的api

在这里插入图片描述
       DataStream API为许多常见的流处理操作提供基本类型,比如窗口化,一次记录转换和通过查询外部数据存储来丰富事件。DataStream API可用于java和scala,它基于map(),reduce()和aggregate()等函数。函数可以通过扩展接口或作为java或Scala lambds函数来定义。

高级别的api

在这里插入图片描述
       Flink有两个关系API,表API和SQL。这两个api都是用于批处理和流处理的统一api,即,查询在无界或有界数据、并进行相应执行,并产生相同的结果。表API和SQL利用Apache sql解析器进行解析、验证和查询优化。它们可以与DataStream和DataSet api无缝集成,并支持用户定义的变量、聚合和表值函数。

Flink运行程序多样化

       Flink是一个分布式系统,需要计算资源才能执行应用程序。Flink集成了所有常见集群资源管理器,同样也可以设置为作为独立集群运行,Flink可以通过特定于资源管理器的部署模式去实现每个资源管理器。

Flink的应用场景

典型的事件驱动的场景如下:

  1. 欺诈检测(Fraud detection) 如短信获取
  2. 异常检测(Anomaly detection)
  3. 基于规则的告警(Rule-based alerting)
  4. 业务流程监控(Business process monitoring)
  5. Web应用程序(社交网络) 如你关注我,我@你
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值