可回答:1)Flink原理 参考答案: Flink起源于Stratosphere项目,Stratosphere是在2010~2014年由3所地处柏林的大学和欧洲的一些其他的大学共同进行的研究项目,2014年4月Stratosphere的代码被复制并捐赠给了Apache软件基金会,参加这个孵化项目的初始成员是Stratosphere系统的核心开发人员,2014年12月,Flink一跃成为Apache软件基金会的顶级项目。 **1、什么是Flink** Flink是一个用于有界和无界数据流上进行有状态计算分布式处理引擎和框架。 Flink 项目的理念是:“**Apache Flink 是为分布式、高性能、随时可用以及准确的流处理应用程序打造的开源流处理框架**”。 **2、Flink主要特点** - 事件驱动型(Event-driven) - 事件驱动型应用是一类具有状态的应用,它从一个或多个事件流提取数据,并根据到来的事件触发计算、状态更新或其他外部动作。比较典型的就是以 Kafka 为代表的消息队列几乎都是事件驱动型应用。 - 基于流的世界观 - 在 Flink 的世界观中,一切都是由流组成的,离线数据是有界的流;实时数据是一个没有界限的流:这就是所谓的有界流和无界流。 - 分层API - 最底层级的抽象仅仅提供了有状态流,它将通过过程函数(Process Function)被嵌入到 DataStream API 中。底层过程函数(Process Function) 与 DataStream API 相集成,使其可以对某些特定的操作进行底层的抽象,它允许用户可以自由地处理来自一个或多个数据流的事件,并使用一致的容错的状态。除此之外,用户可以注册事件时间并处理时间回调,从而使程序可以处理复杂的计算。 - 越顶层越抽象,表达含义越简明,使用越方便 - 越底层越具体,表达能力越丰富,使用越灵活 - 支持事件时间(event-time)和处理时间(processing-time)语义 - 提供了精确一次(exactly-once)的状态一致性保证 - 低延迟,每秒处理数百万个事件,毫秒级延迟 **3、使用场景** 主要有以下几类: - 实时数据分析,如实时指标计算、实时风控、实时推荐等。 - 实时ETL处理,如数据清洗、转换、聚合等。 - 流批一体化,如在同一个程序中处理有界和无界数据源。 - 复杂事件处理,如实时告警、异常检测、规则匹配等。 - 迭代计算,如机器学习、图计算等。