Apache Flink 零基础入门(六)Flink核心概念

    Flink程序是在分布式集合上实现转换的常规程序(例如filtering, mapping, updating state, joining, grouping, defining windows, aggregating)。集合最初是从sources上创建,这些源包括:本地文件, kafka topics, 内存集合等。结果通过sink返回,sink可以将数据写入文件中(分布式)或者终端输出(命令行)。Flink可以运行在不同环境下,例如可以嵌入到其他程序中运行,也可以在单机运行,此外Flink可以在本地JVM中运行,也可以在分布式集群中运行。

    有有界数据源也有无界数据源,可以使用批处理和流处理,使用批处理时使用DataSet API ,使用流处理时使用DataStream API。

Flink编程模型

第一步:获取执行环境,批处理与流处理不同

第二步:获取数据,socket、文本、kafka

第三步:transform

第四步:sink 到哪里去

第五步:触发执行。

Lazy Evaluation 延迟执行

All Flink programs are executed lazily: When the program’s main method is executed, the data loading and transformations do not happen directly. Rather, each operation is created and added to the program’s plan. The operations are actually executed when the execution is explicitly triggered by an execute() call on the execution environment. Whether the program is executed locally or on a cluster depends on the type of execution environment.
The lazy evaluation lets you construct sophisticated programs that Flink executes as one holistically planned unit.

 上面的意思是说:当主函数被执行时,数据加载和transformation不会马上执行。每一个操作会被添加到程序的执行计划中,相当于仅仅是记下来了。当这些"执行操作"被显式触发时(例如调用execute()时),才会真正执行操作。

这种延迟执行方式可以让我们构建非常复杂的应用程序,Flink将一些执行操作作为整体去执行。方便我们去优化。

 

转载于:https://my.oschina.net/duanvincent/blog/3099381

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值