赞
踩
Apache Flink是一个用于对无界和有界数据流进行状态计算的框架。由于许多流应用程序旨在以最少的停机时间连续运行,因此流处理器必须提供出色的故障恢复,以及在应用程序运行时监控和维护应用程序的工具。
机器和流程故障在分布式系统中无处不在。像Flink这样的分布式流处理器必须从故障中恢复,以便能够24/7全天候运行流应用程序。显然,这不仅意味着在失败后重新启动应用程序,而且要确保其内部状态保持一致,以便应用程序可以继续处理,就好像故障从未发生过一样
Flink的恢复机制基于应用程序状态的一致性检查点。如果发生故障,应用程序将重新启动并从最新的检查点加载其状态。结合可重置的流源,这个特性可以保证exactly-once的状态一致性
如果应用程序维护TB级的状态,对应用程序的状态进行检查点可能会非常昂贵。Flink可以执行异步和增量检查点,以保持检查点对应用程序延迟SLA的影响非常小
Flink为特定存储系统提供事务接收器,保证数据只写出一次,即使发生故障
Flink与集群管理器紧密集成,例如:Hadoop YARN或Kubernetes。当一个进程失败时,会自动启动一个新进程来接管它的工作
Flink具有高可用性模式,可消除所有单点故障。HA模式基于Apache ZooKeeper,这是一种经过实战验证的可靠分布式协调服务
需要维护为关键业务服务提供支持的流媒体应用程序。需要修复错误并需要实施改进或新功能。但是,更新有状态的流应用程序并非易事。通常人们不能简单地停止应用程序并重新启动一个固定或改进的版本,因为不能承受丢失应用程序的状态
Flink的Savepoints是一个独特而强大的功能,它解决了更新有状态应用程序的问题和许多其他相关挑战。保存点是应用程序状态的一致快照,因此与检查点非常相似。然而,与检查点相比,保存点需要手动触发,并且不会在应用程序停止时自动删除。保存点可用于启动与状态兼容的应用程序并初始化其状态。保存点启用以下功能:
保存点可用于进化应用程序。可以从从应用程序的先前版本获取的保存点重新启动应用程序的固定或改进版本。也可以从较早的时间点启动应用程序(假设存在这样的保存点)以修复有缺陷的版本产生的不正确结果
使用保存点,可以将应用程序迁移(或克隆)到不同的集群
可以使用保存点迁移应用程序以在新的Flink版本上运行
保存点可用于增加或减少应用程序的并行度
可以通过从同一保存点启动所有版本来比较应用程序的两个(或多个)不同版本的性能或质量
可以通过获取保存点并停止它来暂停应用程序。在以后的任何时间点,都可以从保存点恢复应用程序
可以存档保存点,以便能够将应用程序的状态重置为更早的时间点
就像任何其他服务一样,持续运行的流媒体应用程序需要受到监督并将其集成到组织的运营基础设施中,即监控和日志服务。监控有助于预测问题并提前做出反应。日志记录使根本原因分析能够调查故障。最后,易于访问的界面来控制正在运行的应用程序是一项重要功能
Flink很好地集成了许多常见的日志记录和监控服务,并提供了一个REST API来控制应用程序和查询信息
Flink提供了一个Web UI来检查、监控和调试正在运行的应用程序。它还可以用于提交执行或取消执行
Flink实现了流行的slf4j日志接口,并与日志框架log4j或logback集成
Flink具有复杂的指标系统来收集和报告系统和用户定义的指标。指标可以导出到多个报告器,包括JMX、Ganglia、Graphite、Prometheus、StatsD、Datadog和Slf4j
Flink公开了一个REST API来提交一个新的应用程序,获取一个正在运行的应用程序的保存点,或者取消一个应用程序。REST API还公开元数据和收集的正在运行或已完成的应用程序的指标
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。