Flink入门介绍

《 Flink 入门介绍》

一、前言

在当今大数据领域,流式计算扮演着至关重要的角色。它与传统的批量计算有着明显的区别,并在众多场景中展现出独特的优势。

(一)数据的时效性

在日常工作中,数据处理方式多样。若处理年、月级别的数据进行统计分析或个性化推荐,数据时效性稍缓尚可。然而,对于天、小时甚至更小粒度的数据处理,如网站实时监控(双 11 大屏显示、12306)、异常日志监控(语雀)等场景,传统的先收集数据存储于表,再取出分析的方式已无法满足高时效性需求。这些场景要求工作人员能立即响应,因此对数据时效性要求极高。

(二)流式计算和批量计算

传统的批量计算流程为统一收集数据,存储到数据库(DB),然后对数据进行批量处理。而流式计算则是对持续流动的数据流进行实时处理,计算完后数据通常被丢弃。批量计算维护一张表并实施各种计算逻辑,而流式计算需先定义好计算逻辑并提交到流式计算系统,且在整个运行期间不可更改。在计算结果方面,批量计算对全部数据计算后传输结果,流式计算则是每次小批量计算后结果即可实时展现。

从技术框架来看,Batch Analytics 如 Map Reduce、Hive、Spark Batch 等主要用于传统的离线作业分析、处理与报表生成;Streaming Analytics 则借助 Storm、Flink 等流式分析引擎进行实时数据处理,常用于实时大屏、实时报表等场景(Spark Struct Streaming 为准实时)。

(三)流式计算流程和特性

  1. 流程
    • 提交流计算作业。
    • 等待流式数据触发流计算作业。
    • 计算结果持续不断对外写出。
  2. 特性
    • 实时,低延迟:能快速响应数据变化,及时给出处理结果。
    • 无界:数据源源不断输入,无终止状态。
    • 连续:计算持续进行,处理后的数据随即被丢弃,专注于实时处理新流入的数据。

(四)实时即未来

身处信息革命浪潮之中,5G、物联网、智慧城市、工业 4.0、新基建等新事物不断涌现。大数据领域的数据产生速度更快、数据量更大、来源更多样,数据价值挖掘愈发受重视。随着海量数据和多种业务实时处理需求的激增,传统批处理方式和早期流式处理框架在延迟性、吞吐量、容错能力和使用便捷性等方面难以满足业务要求。而 Flink 凭借其独特的天然流式计算特性和先进架构设计,有效改善了之前流式处理框架存在的问题,成为大数据处理领域的重要力量。

二、Flink 概述

(一)Flink 的引入

近年来大数据蓬勃发展,催生了多个热门开源社区。Hadoop、Storm、Spark 等各有其专注的应用场景。Spark 开启内存计算先河并推动其发展,一定程度上掩盖了其他分布式计算系统。Flink 便是在这样的环境中默默发展。在国外部分社区,大数据计算引擎被分为 4 代(虽存在争议):

  1. 第 1 代——Hadoop MapReduce:将计算分为 Map 和 Reduce 两个阶段,上层应用需拆分算法并串联多个 Job 来完成完整算法。
  2. 第 2 代——DAG 框架(Tez) + MapReduce:为解决第一代弊端,支持 DAG 框架的第二代计算引擎诞生,如 Tez 和 Oozie,多应用于批处理任务。
  3. 第 3 代——Spark:以 Job 内部 DAG 支持(不跨越 Job)和强调实时计算为特点,也能较好运行批处理 Job。
  4. 第 4 代——Flink:着重对流计算的支持和更高的实时性,同时也支持 Batch 任务和 DAG 运算,在批处理、流处理、SQL 高层 API 支持等方面表现出色,流式计算性能和可靠性更高。

(二)Flink 发展史

  1. 起源与捐赠:Flink 起源于 Stratosphere 项目,该项目于 2010 - 2014 年由柏林等地大学联合研究,2014 年 4 月捐赠给 Apache 软件基金会。
  2. 成为顶级项目:2014 年 12 月成为 Apache 软件基金会顶级项目,其前身自 2008 年起已是柏林理工大学研究项目,原名 StratoSphere,后更名为 Flink,由 Java 语言编写。
  3. 重要版本发布
    • 2014 - 11 - 04,Flink 0.7.0 发布,引入重要的 Streaming API。
    • 2016 - 03 - 08,Flink 1.0.0 支持 Scala。
  4. 商业收购:2019 - 01 - 08,阿里巴巴以 9000 万欧元收购 Flink 母公司 Data Artisans,推动 Flink 进一步发展。其 logo 为一只具有 Apache 风格的松鼠,在德语中“Flink”表示快速和灵巧。

(三)Flink 官方介绍

Flink 官方网站为 https://flink.apache.org/zh/,主页展示其理念为“Apache Flink 是为分布式、高性能、随时可用以及准确的流处理应用程序打造的开源流处理框架”。它是一款分布式计算引擎,既能用于流处理,也能用于批处理。

(四)编程语言

Flink 官方提供 Java、Scala、Python 语言接口开发应用程序,但其源码由 Java 编写。被阿里收购后,Java 更是未来主要编程语言,GitHub 上多数 Flink 项目也以 Java 编写,因此本课程以 Java 为主学习 Flink。

(五)FLink 外传

在典型大数据业务场景中,常采用批处理技术处理全量数据,流式计算处理实时增量数据。但用户批处理和流处理的计算引擎不同,需编写两套代码,带来额外负担和成本。阿里巴巴商品数据处理面临增量和全量业务流程问题,由此产生对统一大数据引擎技术的需求,这便是阿里选择 Flink 的背景与初衷。2015 年阿里开始使用 Flink 并持续贡献社区(内部基于 Flink 开发了 Blink),收购后 Flink 迎来新发展机遇。

(六)Flink 中的批和流

批处理具有有界、持久、大量的特点,适合需访问全部记录的计算工作,常用于离线统计。流处理具有无界、实时的特性,对通过系统传输的每个数据项操作,多用于实时统计。在 Flink 中,一切皆由流组成,有界数据集被视为无界数据流的特例,离线数据是有界限的流,实时数据是无界限的流,即有界流和无界流。无界流只有开始无结束,需连续处理且数据注入有顺序要求以保证处理结果完整;有界流有明确起止定义,可在数据全部注入后处理,注入顺序非必需,其处理也可称为批处理。

(七)性能比较

Spark 和 Flink 均可运行在 Hadoop YARN 上,性能表现为 Flink > Spark > Hadoop(MR),尤其在迭代次数(数据量)较多时,Flink 性能优势更明显。这主要得益于 Flink 支持增量迭代并具备自动优化迭代功能。

(八)Flink 的应用场景

众多行业的公司都在使用 Flink,如:

  1. 电商和市场营销:实现实时数据报表、广告投放、实时推荐等功能,助力精准营销与业务决策。
  2. 物联网(IOT):用于传感器实时数据采集与显示、实时报警,在交通运输业等领域发挥重要作用,保障设备运行安全与数据监控及时。
  3. 物流配送和服务业:可实时更新订单状态、推送通知信息,提升服务质量与客户体验。
  4. 银行和金融业:支持实时结算与通知推送,实时检测异常行为,保障金融交易安全与高效运作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/61451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

短剧系统小程序开发产品设计实例解析

短剧系统小程序开发架构深度解析引言 随着数字娱乐市场的蓬勃发展,短剧因其紧凑的情节、创新的表现形式和便捷的观看体验,迅速吸引了大量观众的关注。作为承载短剧内容的重要平台,短剧系统小程序不仅需要在用户体验、内容管理等方面做到极致&…

AI数字人视频小程序:引领未来互动新潮流

当下,随着人工智能技术的不断创新发展,各类AI系统已经成为了创新市场发展的重要力量,AI文案、AI数字人、AI视频等,为大众带来更加便捷的创作方式,AI成为了一个全新的风口,各种AI红利持续释放,市…

《光谱学与光谱分析》

《光谱学与光谱分析》(Spectroscopy and Spectral Analysis)系中国科学技术协会主管,中国光学学会主办,由钢铁研究总院、中国科学院物理研究所、北京大学、清华大学联合承办的学术性刊物。刊登主要内容:激光光谱测量、红外、拉曼、紫外、可见…

解决vue-pdf的签章不显示问题

在使用vue-pdf 4.3.0时发现上传一般的普通pdf正常预览,但是上传带有红头文件的和和特殊字体的pdf无法正常内容显示,文字丢失问题。 1、查看控制台报错信息 2、缺少字体原因 getNumPages(url) {var loadingTask pdf.createLoadingTask({url: url,//引入…

【 模型】 开源图像模型Stable Diffusion入门手册

开源图像模型Stable Diffusion入门手册 引言硬件要求环境部署手动部署整合包 模型装配更新显存优化插件配置文生图最简流程提示词使用技巧结语 引言 Stable Diffusion是一款在2022年发布的深度学习文字到图像生成模型。它能够根据文字描述生成详细的图像,并且在几秒…

跨境电商API接口:数据采集与业务集成的核心

跨境电商作为全球贸易的重要组成部分,正随着互联网技术的发展而迅速增长。在这个过程中,API接口扮演了至关重要的角色,它们不仅提高了运营效率,还增强了安全性和用户体验。本文将深入探讨跨境电商API接口的应用、重要性以及面临的…

【linux013】文件操作命令篇 - less 命令

文章目录 less 命令1、基本用法2、常见选项3、交互式键盘命令4、举例5、注意事项 less 命令 less 是 Linux 中强大的文件分页查看命令,比 more 更灵活且功能更强大。less 支持双向滚动、搜索、显示大文件等功能,适用于查看文件内容或管道输出的大量文本…

力扣 无重复字符的最长字串-3

无重复字符的最长字串-3 class Solution { public:// 解决方法:双指针int lengthOfLongestSubstring(string s) { // 如果字符串为空,直接返回0if (s.length() 0)return 0;// 如果字符串不为空,字符串每个字符都不同的情况下,最…

如何在Ubuntu当中利用CloudCompare软件进行点云配准拼接?

1.首先需要安装相应的cloudcompare软件,以下有两种方式:第一种直接在ubuntu的软件商店里搜索CloudCompare软件进行install,我这里已经安装完毕。 方式二:可以直接原码安装: github地址: https://github.co…

贴贴,一款windows剪切板管理软件

贴贴,一款windows剪切板管理软件 软件下载官网 https://tietieapp.com 软件界面 软件界面简洁、信息展示清晰。软件会自动记录你复制过的内容。包括哪个软件复制的、复制的时间。支持图片、文本、文件等多种格式。支持持久化,电脑重启记录仍然存在。支持…

泷羽sec学习打卡-html基础

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 关于云技术基础的那些事儿-捕获帅照 html基础什么是html? 常用的html标签html示例 css基础什…

RocketMQ的使⽤

初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种⽅式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要⻢上回复。 两种⽅式各有优劣,打电话可以⽴即得到响应,但…

java 字符 ASCII码 详解

在 Java 中,字符 (char) 和 ASCII 码的关系是通过 Unicode 字符集建立的。以下是 Java 中字符与 ASCII 码相关的详解。 1. 什么是 ASCII 和 Unicode? ASCII (American Standard Code for Information Interchange) ASCII 码 是一种字符编码标准&#x…

初试无监督学习 - K均值聚类算法

文章目录 1. K均值聚类算法概述2. k均值聚类算法演示2.1 准备工作2.2 生成聚类用的样本数据集2.3 初始化KMeans模型对象,并指定类别数量2.4 用样本数据训练模型2.5 用训练好的模型生成预测结果2.6 输出预测结果2.7 可视化预测结果 3. 实战小结 1. K均值聚类算法概述…

JSON,事件绑定

文章目录 JSON事件绑定输入框input和div的内容返回获取dom元素数组还是单个对象for循环为什么要写const那一行,直接写 hobbys[index].checked true;可以吗const不是常量吗,为什么用const声明的element的属性值可以改变? 黑马学习笔记 JSON 定…

学习HTML第三十一天

学习文章目录 七. 普通按钮八. 文本域九.下拉框 七. 普通按钮 注意点:普通按钮的 type 值为 button ,若不写 type 值是 submit 会引起表单的提交 八. 文本域 常用属性如下: rows 属性:指定默认显示的行数,会影响文…

基于Multisim的汽车尾灯控制电路设计与仿真

1、电路由四个按键控制,分别对应左转、右转、刹车和检查。 2、当左转或右转键按下时,左侧或右侧的 3个汽车尾灯按照左循环或右循环的顺!2/3 点亮,点亮时间为 1秒。 3、当刹车时,所有的尾灯同时闪烁,闪烁时间为1秒。 4、当检查时…

7天掌握SQL - 第三天:MySQL实践与索引优化

目录 安装MySQL创建数据库和表结构SQL语句实操练习MySQL高级特性索引设计与优化总结 1. 安装MySQL 1.1 下载与安装 MySQL可以通过官方网站下载安装包。以下是安装MySQL的基本步骤: 访问MySQL官方网站 MySQL Downloads。选择适合您操作系统的版本进行下载。安装…

osg、osgearth简介及学习环境准备

一、osg简介(三维场景图渲染与调度引擎) OSG是Open Scene Graphic 的缩写,OSG于1997年诞生于以为滑翔机爱好者之手,Don burns 为了对滑翔机的飞行进行模拟,对openGL的库进行了封装,osg的雏形就这样诞生了&…

小程序-使用 iconfont 图标库报错:Failed to load font

官方默认可以忽略此错误,在清除缓存后首次刷新会显示此错误,重新渲染错误消失 解决方法: 在 iconfont 图标库选择项目设置 选中 Base64 保存,重新点击链接 -> 复制代码到项目中 操作步骤: