0

0

Flink学习笔记(1) -- Flink入门介绍

蓮花仙者

蓮花仙者

发布时间:2025-09-11 10:38:12

|

666人浏览过

|

来源于php中文网

原创

目录

1、Flink简介

2、Flink架构图

3、Flink基本组件介绍

4、Flink的流处理与批处理

5、Flink应用场景分析

6、Flink\Storm\SparkStreaming的比较

7、Flink入门案例 – WordCount

8、Flink scala shell代码调试

1、Flink简介

Flink学习笔记(1) -- Flink入门介绍

Flink是一个分布式大数据计算引擎,支持对有限流和无限流进行有状态的计算。它提供了Java API和Scala API,具有高吞吐量和低延迟的特点,支持事件处理和无序处理,提供一次且仅一次的容错担保,自动反压机制,并兼容Hadoop、Storm、HDFS和YARN。

Flink学习笔记(1) -- Flink入门介绍

2、Flink架构图

Flink学习笔记(1) -- Flink入门介绍

Flink的API架构分为多层,底层API更灵活,上层API更便捷。

low level Stateful stream Processing(Core API的底层实现,开发较为复杂) ↓

Core API(DataStream\DataSet API)

Table API

high level

SQL

Flink学习笔记(1) -- Flink入门介绍

3、Flink基本组件介绍

Flink学习笔记(1) -- Flink入门介绍

代码语言:javascript

代码运行次数:0

运行 复制
(1) DataSource指的是数据处理的数据源,可以是HDFS、Kafka、Hive等;
(2) Transformations指的是对数据的处理转换方法;
(3) DataSink指的是数据处理完成后的输出目的地,可以是MySQL、HBase、HBFS等;

4、Flink的流处理与批处理

在处理大数据领域,批处理任务和流处理任务通常被视为两种不同的任务。大数据框架一般设计为只能处理其中一种任务。例如,Storm仅支持流处理任务,而MapReduce和Spark仅支持批处理任务。Spark Streaming是Apache Spark上支持流处理任务的子系统,看似是一个特例,但实际上并非如此——Spark Streaming采用了micro-batch架构,即将输入的数据流分割成细粒度的批次,并为每个批次数据提交一个批处理的Spark任务。因此,Spark Streaming本质上仍然是基于Spark批处理系统对流式数据进行处理,与Storm等完全流式的数据处理方式截然不同。

Flink通过灵活的执行引擎,能够同时支持批处理任务和流处理任务。

在执行引擎层面,流处理系统与批处理系统的主要区别在于节点间的数据传输方式。对于流处理系统,节点间数据传输的标准模型是:当一条数据被处理完成后,序列化到缓存中,然后立即通过网络传输到下一个节点,由下一个节点继续处理;而对于批处理系统,节点间数据传输的标准模型是:当一条数据被处理完成后,序列化到缓存中,并不会立即通过网络传输到下一个节点,当缓存写满时,才持久化到本地硬盘上,等所有数据处理完成后,才开始将处理后的数据通过网络传输到下一个节点。这两种数据传输模式是两个极端,分别对应流处理系统对低延迟的要求和批处理系统对高吞吐量的要求。Flink的执行引擎采用了一种非常灵活的方式,同时支持这两种数据传输模型。

Flink以固定大小的缓存块为单位进行网络数据传输,用户可以通过设置缓存块的超时值来指定传输时机。如果缓存块的超时值为0,则Flink的数据传输方式类似于流处理系统的标准模型,此时系统可以获得最低的处理延迟;如果缓存块的超时值为无限大,则Flink的数据传输方式类似于批处理系统的标准模型,此时系统可以获得最高的吞吐量;同时,缓存块的超时值也可以设置为0到无限大之间的任意值。缓存块的超时阈值越小,Flink流处理执行引擎的数据处理延迟就越低,但吞吐量也会降低,反之亦然。通过调整缓存块的超时阈值,用户可以根据需求灵活地权衡系统延迟和吞吐量。

Flink学习笔记(1) -- Flink入门介绍

5、Flink应用场景分析

Ⅰ、优化电商网站的实时搜索结果

Ⅱ、阿里巴巴的所有基础设施团队使用flink实时更新产品细节和库存信息(Blink)

Ⅲ、针对数据分析团队提供实时流处理服务

PHP 网络编程技术与实例(曹衍龙)
PHP 网络编程技术与实例(曹衍龙)

PHP网络编程技术详解由浅入深,全面、系统地介绍了PHP开发技术,并提供了大量实例,供读者实战演练。另外,笔者专门为本书录制了相应的配套教学视频,以帮助读者更好地学习本书内容。这些视频和书中的实例源代码一起收录于配书光盘中。本书共分4篇。第1篇是PHP准备篇,介绍了PHP的优势、开发环境及安装;第2篇是PHP基础篇,介绍了PHP中的常量与变量、运算符与表达式、流程控制以及函数;第3篇是进阶篇,介绍

下载

Ⅳ、通过flink数据分析平台提供实时数据分析服务,及时发现问题

Ⅴ、网络/传感器检测和错误检测

Ⅵ、Bouygues电信公司,是法国最大的电信供应商之一,使用flink监控其有线和无线网络,实现快速故障响应

Ⅶ、商业智能分析ETL

Ⅷ、Zalando使用flink转换数据以便于加载到数据仓库,将复杂的转换操作转化为相对简单的并确保分析终端用户可以更快的访问数据(实时ETL)

6、Flink\Storm\SparkStreaming的比较

Flink学习笔记(1) -- Flink入门介绍

Flink学习笔记(1) -- Flink入门介绍

选择实时框架时需要考虑以下几点:

1:是否需要对流数据进行状态管理;

2:是否有对At-least-once或Exactly-once消息投递模式的特殊要求;

3:对于小型独立项目,并且需要低延迟的场景,建议使用Storm;

4:如果你的项目已经使用了Spark,并且秒级别的实时处理可以满足需求,建议使用Spark Streaming;

5:要求消息投递语义为Exactly Once的场景;数据量较大,要求高吞吐低延迟的场景;需要进行状态管理或窗口统计的场景,建议使用Flink。

7、Flink入门案例 – WordCount

Flink学习笔记(1) -- Flink入门介绍

Flink学习笔记(1) -- Flink入门介绍

Flink学习笔记(1) -- Flink入门介绍

Flink学习笔记(1) -- Flink入门介绍

Flink学习笔记(1) -- Flink入门介绍

Flink WordCount 实时处理 Java版本代码:

Flink学习笔记(1) -- Flink入门介绍

Flink学习笔记(1) -- Flink入门介绍

Flink WordCount 实时处理 Scala版本代码:

Flink学习笔记(1) -- Flink入门介绍

Flink WordCount 批处理 Java版本代码:

Flink学习笔记(1) -- Flink入门介绍

Flink WordCount 批处理 Scala版本代码:

Flink学习笔记(1) -- Flink入门介绍

Flink学习笔记(1) -- Flink入门介绍

8、Flink scala shell代码调试

对于初学者,开发时容易出错,如果每次都打包进行调试,比较麻烦,并且也不好定位问题,可以在scala shell命令行下进行调试;scala shell方式支持流处理和批处理。当启动shell命令行后,两个不同的ExecutionEnvironments会被自动创建。使用senv(Stream)和benv(Batch)分别处理流处理和批处理程序(类似于spark-shell中的sc变量)。

bin/start-scala-shell.sh [local|remote|yarn] [options]

Flink学习笔记(1) -- Flink入门介绍

如果需要深入学习,可以继续阅读剩下的章节,总共有八章节。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
什么是分布式
什么是分布式

分布式是一种计算和数据处理的方式,将计算任务或数据分散到多个计算机或节点中进行处理。本专题为大家提供分布式相关的文章、下载、课程内容,供大家免费下载体验。

405

2023.08.11

分布式和微服务的区别
分布式和微服务的区别

分布式和微服务的区别在定义和概念、设计思想、粒度和复杂性、服务边界和自治性、技术栈和部署方式等。本专题为大家提供分布式和微服务相关的文章、下载、课程内容,供大家免费下载体验。

251

2023.10.07

hadoop是什么
hadoop是什么

hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。本专题为大家免费提供hadoop相关的文章、下载和课程。

217

2023.06.30

hadoop三大核心组件介绍
hadoop三大核心组件介绍

Hadoop的三大核心组件分别是:Hadoop Distributed File System(HDFS)、MapReduce和Yet Another Resource Negotiator(YARN)。想了解更多hadoop的相关内容,可以阅读本专题下面的文章。

413

2024.03.13

hadoop的核心
hadoop的核心

hadoop的核心由分布式文件系统 (hdfs) 和资源管理框架 (mapreduce) 组成。想了解更多hadoop的相关内容,可以阅读本专题下面的文章。

348

2024.05.16

Java 大数据处理基础(Hadoop 方向)
Java 大数据处理基础(Hadoop 方向)

本专题聚焦 Java 在大数据离线处理场景中的核心应用,系统讲解 Hadoop 生态的基本原理、HDFS 文件系统操作、MapReduce 编程模型、作业优化策略以及常见数据处理流程。通过实际示例(如日志分析、批处理任务),帮助学习者掌握使用 Java 构建高效大数据处理程序的完整方法。

766

2025.12.08

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1005

2023.11.02

Java 大数据处理基础(Hadoop 方向)
Java 大数据处理基础(Hadoop 方向)

本专题聚焦 Java 在大数据离线处理场景中的核心应用,系统讲解 Hadoop 生态的基本原理、HDFS 文件系统操作、MapReduce 编程模型、作业优化策略以及常见数据处理流程。通过实际示例(如日志分析、批处理任务),帮助学习者掌握使用 Java 构建高效大数据处理程序的完整方法。

766

2025.12.08

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.5万人学习

Excel 教程
Excel 教程

共162课时 | 21万人学习

PHP基础入门课程
PHP基础入门课程

共33课时 | 2.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号