热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2022.4.2学习成果

Flink中的编程模型4.1编程模型在Flink,编程模型的抽象层级主要分为以下4种,越往下抽象度越低,编程越复杂,灵活度越高。这里先不一一介绍,后续会做详细说明。这4层中,一般用

Flink中的编程模型


4.1 编程模型

在Flink,编程模型的抽象层级主要分为以下4种,越往下抽象度越低,编程越复杂,灵活度越高。

这里先不一一介绍,后续会做详细说明。这4层中,一般用于开发的是第三层,即DataStrem/DataSetAPI。用户可以使用DataStream API处理无界数据流,使用DataSet API处理有界数据流。同时这两个API都提供了各种各样的接口来处理数据。例如常见的map、filter、flatMap等等,而且支持python,scala,java等编程语言,后面的demo主要以scala为主。


4.2 程序结构

与其他的分布式处理引擎类似,Flink也遵循着一定的程序架构。下面以常见的WordCount为例:

val env = ExecutionEnvironment.getExecutionEnvironment
// get input data
val text = env.readTextFile("/path/to/file")
val counts = text.flatMap { _.toLowerCase.split("\\W+") filter { _.nonEmpty } }
.map { (_, 1) }
.groupBy(0)
.sum(1)
counts.writeAsCsv(outputPath, "\n", " ")

Flink基本架构
2.1、JobManager和TaskManager
JobManager:也称之为Master用于协调分布式执行,它们用来调度task协调检查点,协调失败时恢复等。Flink运行时至少存在一个master处理器,如果配置高可用模式则会存在多个master处理器,其中有一个是leader其他都是standby。

TaskManager:也称之为Worker,用于执行一个dataflow的task(或者特殊的subtask)、数据缓冲和datastream的交换,Flink运行时至少会存在一个worker处理器。

Master和Worker处理器可以直接在物理机上启动或者通过相Yarn这样的资源调度框架。
Worker连接到Master,告知自身的可用性进而获得任务分配。



推荐阅读
author-avatar
fushuzhen68139
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有