目录
Flink专栏目录(点击进入…)
每个人的人生都只有一次机会,不要用最宝贵的青春为别人而活。
愿在试错中不断成长。
快来加入我们的互动学习群吧,与我们一起成长和进步吧! QQ交流群:948912943
什么是Apache Flink?
Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。Flink被设计为在所有常见的集群环境中运行,以内存中的速度和任何规模执行计算。
(1)处理无界和有界数据
任何类型的数据都是作为事件流产生的。信用卡交易、传感器测量、机器日志或网站或移动应用程序上的用户交互,所有这些数据都以流的形式生成。
Apache Flink擅长处理无界和有界数据集。对时间和状态的精确控制使Flink的运行时能够在无限流上运行任何类型的应用程序。有界流由专门为固定大小的数据集设计的算法和数据结构在内部进行处理,从而产生出色的性能
①无界流
有一个开始但没有定义的结束。它们不会终止并在生成数据时提供数据。必须连续处理无界流,即事件必须在被摄取后立即处理。不可能等待所有输入数据到达,因为输入是无界的并且不会在任何时间点完成。处理无界数据通常需要以特定顺序摄取事件(例如事件发生的顺序),以便能够推断结果的完整性。
②有界流
具有定义的开始和结束。可以通过在执行任何计算之前摄取所有数据来处理有界流。处理有界流不需要有序摄取,因为始终可以对有界数据集进行排序。有界流的处理也称为批处理
(2)随处部署应用程序
Apache Flink是一个分布式系统,需要计算资源才能执行应用程序。Flink集成了所有常见的集群资源管理器,例如Hadoop YARN和Kubernetes,但也可以设置为作为独立集群运行。
Flink在很好地工作于前面列出的每个资源管理器。这是通过特定于资源管理器的部署模式实现的,该模式允许Flink以惯用的方式与每个资源管理器进行交互。
在部署Flink应用程序时,Flink会根据应用程序配置的并行度自动识别所需资源,并向资源管理器请求。在失败的情况下,Flink通过请求新资源来替换失败的容器。提交或控制应用程序的所有通信都是通过REST调用发生的。这简化了Flink在许多环境中的集成
(3)以任何规模运行应用程序
Flink在以任何规模运行有状态的流应用程序。应用程序被并行化为可能在集群中分布和并发执行的数千个任务。因此,应用程序可以利用几乎无限量的CPU、主内存、磁盘和网络IO。而且,Flink很容易维护非常大的应用程序状态。其异步和增量检查点算法确保对处理延迟的影响最小,同时保证精确一次的状态一致性。
用户报告了在其生产环境中运行的Flink应用程序的可扩展性数据,例如:
①应用程序每天处理数万亿个事件
②维护多个 TB 状态的应用程序
③在数千个内核上运行的应用程序
(4)利用内存性能
有状态的Flink应用程序针对本地状态访问进行了优化。
任务状态始终保存在内存中,或者如果状态大小超过可用内存,则保存在访问高效的磁盘数据结构中。因此,任务通过访问本地(通常是在内存中)状态来执行所有计算,从而产生非常低的处理延迟。Flink通过定期和异步检查本地状态到持久存储来保证在发生故障时的一次性状态一致性文章来源:https://www.toymoban.com/news/detail-850779.html
文章来源地址https://www.toymoban.com/news/detail-850779.html
到了这里,关于1.什么是Apache Flink?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!