Flink入门介绍和安装部署、第一个Flink程序WC

本文介绍了Apache Flink的基础概念,包括其作为流处理框架的特性、部署位置、编程模型以及Flink程序的核心结构。还涵盖了Flink的事件时间处理和状态一致性保障。最后,文章指导了如何搭建Flink环境并编写第一个WordCount程序。
摘要由CSDN通过智能技术生成

1、Flink介绍

1.1 Flink是什么

Apache官网:
https://flink.apache.org/

Apache Flink® - Stateful Computations over Data Streams 数据流上的有状态计算
Apache Flink是一个框架和分布式处理引擎,用于在无界和有界数据流上进行有状态计算。Flink被设计用于在所有常见的集群环境中运行,以内存中的速度和任何规模执行计算。
无界:数据流源源不断的,有开头,没有结束
有界:其实就相当于一个批处理,有开头,有结束
在这里插入图片描述
在这里插入图片描述
和Spark一样也支持批处理和流处理
Spark的实时处理:其实是一个小的迷你Batch,Stream是他的特例
Flink的实时处理:刚好和Spark想法,Flink是实时Stream的,Batch是Stream的特例

所有流式用例:
事件驱动的应用程序
流和批分析
数据管道和ETL

保证正确性:
只有一次状态的一致性
事件时间处理
复杂的后期数据处理

APIs:
SQL on Stream & Batch Data
DataStream API & DataSet API
ProcessFunction (Time & State)

1.2 Flink部署在什么地方

Flink集成了所有常见的集群资源管理器,如Hadoop纱线、Apache Mesos和Kubernetes,但也可以设置为作为独立集群运行。Flink集成了所有常见的集群资源管理器,如Hadoop YARN、Apache Mesos和Kubernetes,也可以设置为stand-alone运行。

1.3 Flink编程模型

在这里插入图片描述

  • 最低级别抽象只提供有状态流。它通过Process函数嵌入到DataStream API中。它允许用户自由处理来自一个或多个流的事件,并使用一致的容错状态。此外,用户可以注册事件时间和处理时间回调,允许程序实现复杂的计算。
  • 实际上,大多数应用程序不需要上面描述的低层抽象,而是根据核心API (DataStream API(有界/无界流)和DataSet API(有界数据集)进行编程。这些连贯api为数据处理提供了常见的构建块,比如用户指定的各种形式的transformations, joins, aggregations, windows, state等。在这些api中处理的数据类型用各自的编程语言表示为类。
  • 表API是一个以表为中心的声明性DSL,表可以(在表示流时)动态地更改表。表API遵循(扩展的)关系模型:表有一个附加的模式(类似于关系数据库中的表),而API提供了类似的操作,如select、project、join、group-by、aggregate等。表API程序声明性地定义应该执行什么逻辑操作,而不是确切地指定操作代码的外观。虽然表API可以通过各种类型的用户定义函数进行扩展,但是它比核心API更缺乏表现力,但是使用起来更简洁(编写的代码更少)。此外,表API程序还需要经过一个在执行之前应用优化规则的优化器。
    可以在表和DataStream/DataSet之间无缝转换,允许程序混合表API和DataStream和DataSet API。
  • Flink提供的最高级抽象是SQL。这种抽象在语义和表达性上都类似于表API,但将程序表示为SQL查询表达式。SQL抽象与表API紧密交互,SQL查询可以在表API中定义的表上执行。

1.4 程序和数据流

Flink程序的基本构建块是流和转换
在这里插入图片描述
Spark:input–>transformation–>action–>output
Flink:source–>transformation–>transformation–>sink

Parallel Dataflows并行数据流
在这里插入图片描述

Windows窗口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值