java系统找不到指定文件怎么解决
270
2022-09-18
Flink学习笔记(一)
目录
概述
Stateful Functions
Flink应用场景
Event-driven Applications
Event-driven Applications的优势
工作原理
Data Analytics Applications
Data Analytics Applications的优势
工作原理
Data Pipeline Applications
Data Pipeline Applications的优势
工作原理
Flink与Spark
概述
Flink官网:Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams. Flink has been designed to run in all common cluster environments, perform computations at in-memory speed and at any scale。
大概意思:
Apache Flink是一个框架和分布式处理引擎,用于在无界和有界数据流上进行有状态计算。Flink被设计成可以在所有常见的集群环境中运行,以内存速度和任何规模执行计算。
Stateful Functions
Stateful Functions是Flink极其重要的一个概念,我们想很好的掌握Flink技术,有需要去研究Stateful Functions,我们先看看官网是怎样定义Stateful Functions:
Stateful Functions is an API that simplifies building distributed stateful applications. It’s based on functions with persistent state that can interact dynamically with strong consistency guarantees.
大概意思是:
有状态函数是一种简化构建分布式有状态应用程序的API。它基于具有持久状态的函数,可以与强一致性保证动态交互。
Flink应用场景
Flink应用场景一般分为以下三种:
Event-driven ApplicationsData Analytics ApplicationsData Pipeline Applications
Event-driven Applications
Event-driven Applications,事件驱动的应用程序是一种有状态的应用程序,它从一个或多个事件流中摄取事件,并通过触发计算、状态更新或外部操作对传入事件作出响应。
事件驱动的应用程序是传统应用程序设计的演变,具有分离的计算和数据存储层。在这种体系结构中,应用程序从一个远程事务数据库读取数据并将数据持久化到该数据库。
相反,事件驱动的应用程序是基于有状态流处理应用程序的。在这种设计中,数据和计算放在一起,从而产生本地(内存中或磁盘中)数据访问。容错是通过定期将检查点写入远程持久存储来实现的。下图描述了传统应用程序体系结构和事件驱动应用程序之间的区别。
Event-driven Applications的优势
事件驱动的应用程序在本地访问数据,而不是查询远程数据库,这在吞吐量和延迟方面产生了更好的性能。远程持久存储的定期检查点可以异步和增量地完成。因此,检查点对常规事件处理的影响非常小。然而,事件驱动的应用程序设计提供了比本地数据访问更多的好处。在分层体系结构中,多个应用程序共享同一个数据库是很常见的。因此,数据库的任何更改,比如更改数据。
工作原理
事件驱动应用程序的限制是由流处理器处理时间和状态的能力来定义的。Flink的许多杰出特性都围绕着这些概念展开。Flink提供了一组丰富的状态原语,这些原语可以管理非常大的数据量(最多数tb),同时保证了一次一致性。此外,Flink支持ProcessFunction提供的事件时间、高度可定制的窗口逻辑和细粒度的时间控制,从而支持高级业务逻辑的实现。此外,Flink还提供了一个用于复杂事件处理(CEP)的库,用于检测数据流中的模式。然而,Flink对于事件驱动应用程序的突出特性是保存点。保存点是一种一致的状态映像,可以作为兼容应用程序的起点。给定一个保存点,可以更新或调整应用程序的规模,或者启动应用程序的多个版本进行A/B测试。
Data Analytics Applications
Data Analytics Applications,数据分析应用程序的分析工作是从原始数据中提取信息和洞察。传统上,分析是在记录事件的有界数据集上执行批量查询或应用程序。为了将最新数据合并到分析结果中,必须将其添加到已分析的数据集中,并重新运行查询或应用程序。结果被写入存储系统或以报告的形式发出。
有了一个复杂的流处理引擎,分析也可以以实时的方式执行。流查询或应用程序不是读取有限的数据集,而是获取实时事件流,并在使用事件时不断生成和更新结果。结果要么被写入外部数据库,要么作为内部状态进行维护。仪表板应用程序可以从外部数据库读取最新结果,也可以直接查询应用程序的内部状态。
Flink支持以下两种处理方式:
Data Analytics Applications的优势
与批处理分析相比,连续流分析的优点不仅限于由于消除了周期性导入和查询执行,从事件到洞察的延迟要低得多。与批处理查询不同,流查询不需要处理输入数据中的人工边界,这些边界是由周期性导入和输入的有界性质造成的。
另一个方面是更简单的应用程序体系结构。批分析管道由几个独立组件组成,用于定期安排数据摄入和查询执行。可靠地运行这样的管道非常重要,因为一个组件的故障会影响管道的以下步骤。相比之下,流分析应用程序运行在像Flink这样复杂的流处理器上,它包含了从数据摄取到连续结果计算的所有步骤。因此,它可以依靠发动机的故障恢复机制。
工作原理
Flink为连续流和批分析提供了很好的支持。具体来说,它提供了一个符合ansi的SQL接口,对批处理和流查询具有统一的语义。无论SQL查询是在记录事件的静态数据集上运行还是在实时事件流上运行,都会计算出相同的结果。对用户定义函数的丰富支持确保了定制代码可以在SQL查询中执行。如果需要更多的自定义逻辑,Flink的DataStream API或DataSet API提供了更多的低级控制。此外,Flink的Gelly库为批量数据集上的大规模和高性能图形分析提供了算法和构建块。
Data Pipeline Applications
Data Pipeline Applications,数据管道应用程序最常用于ETL,提取-转换-加载(ETL)是在存储系统之间转换和移动数据的常用方法。通常会定期触发ETL作业,将数据从事务性数据库系统复制到分析性数据库或数据仓库。
数据管道的作用与ETL作业类似。它们可以转换和丰富数据,并可以将数据从一个存储系统转移到另一个存储系统。然而,它们在连续流模式下运行,而不是周期性地触发。因此,它们能够从不断产生数据的源读取记录,并以低延迟将其移动到目的地。例如,数据管道可以监视文件系统目录以获取新文件,并将它们的数据写入事件日志。另一个应用程序可能将事件流实体化到数据库,或者增量地构建和细化搜索索引。
下图描述了周期性ETL作业和连续数据管道之间的区别:
Data Pipeline Applications的优势
与周期性的ETL作业相比,连续数据管道的明显优点是减少了将数据移动到目的地的延迟。此外,数据管道更多功能,可以用于更多的用例,因为它们能够持续地消费和发出数据。
工作原理
许多常见的数据转换或丰富任务可以通过Flink的SQL接口(或表API)及其对用户定义函数的支持来解决。具有更高级需求的数据管道可以通过使用更通用的DataStream API来实现。Flink为各种存储系统(如Kafka、Kinesis、Elasticsearch和JDBC数据库系统)提供了一组丰富的连接器。它还为监视目录的文件系统提供了连续源,并为以时间桶方式写入文件的接收器提供了功能。
Flink与Spark
API |
Spark |
Flink |
底层API |
RDD |
Process Function |
核心API |
DataFrame/DataSet/Structured |
DataStream/DataSet |
SQL |
Spark SQL |
Table API & SQL |
机器学习 |
MLlib |
Flink ML |
图计算 |
GraphX |
Gelly |
其他 |
|
CEP |
支持语言 |
Spark |
Flink |
Java |
支持 |
支持 |
Scala |
支持 |
支持 |
Python |
支持 |
支持 |
R |
支持 |
第三方 |
SQL |
支持 |
支持 |
部署环境 |
Spark |
Flink |
Local(Single JVM) |
支持 |
支持 |
Standalone Cluster |
支持 |
支持 |
Yarn |
支持 |
支持 |
Mesos |
支持 |
支持 |
Kubernetes |
支持 |
支持 |
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~