FLIP-40: Flink Driver

栏目: 编程工具 · 发布时间: 5年前

内容简介:Motivation正如在交互式编程的讨论中提到的,用户应用程序可能由多个作业组成,需要很长时间才能完成。为了解决这个问题,我们想引入Flink Driver。

Motivation

正如在交互式编程的讨论中提到的,用户应用程序可能由多个作业组成,需要很长时间才能完成。 当前,当Flink运行具有多个作业的应用程序时,应用程序将在负责提交作业的本地进程中运行。 直到整个应用程序完成,该本地进程才会退出。 用户必须密切关注本地进程,以防它因连接丢失、会话超时、本地操作系统问题等而被终止。

为了解决这个问题,我们想引入Flink Driver。 用户可以使用 Driver 模式提交应用程序。 将提交Flink  Driver 作业以处理用户应用程序中的作业提交。 Driver 模式本身不一定绑定到交互式编程。 但是,由于大多数使用交互式编程的应用程序都是长期运行的,因此 Driver 模式在这种情况下特别有用。

FLIP-40: Flink Driver

Goals

Driver 模式的目标:

  1. 在Flink Driver (运行用户程序的主要功能的Flink作业)中执行用户应用程序,这样用户就不需要长时间运行本地进程。

  2. 支持Flink当前支持的所有应用提交方式,独立集群或纱线/Kubernetes集群等。

  3. 当应用程序在 Driver 模式下运行时,可以查询应用程序状态。

Public Interfaces

所有公共接口更改都在./Flink run命令行上。

  • 添加一个新选项-D/-Driver以启用 Driver 模式。

  • 如果使用 Driver 模式,则为 Driver 作业添加以下新配置

-Dhm

--driverheapmemory

Driver task heap memory in MB

-Ddm

--driverdirectmemory

Driver task direct memory in MB

-Dc

--drivercpus

Driver task cpu cores.

-Dnm

--drivernativememory

Driver task native memory in MB

Proposed Changes

Current status of running applications

Flink提供了一个命令行接口(Command-Line Interface,CLI)来运行打包为JAR文件的应用程序。 根据用户是否提供现有Flink群集,存在两种情况:per作业模式和会话模式。

per-job

.bin/flink run application.jar

  • 对于应用程序中的每个作业,将使用作业图部署Flink群集。 一旦部署完成,Flink群集将运行作业图。 作业完成后,群集将被销毁并回收

  • 仅当用户应用程序中只有一个JobGraph时,Pre-job模式才起作用。

session-mode

.bin//flink run application.jar -m JM_ADDRESS

  • 用户使用配置的作业管理器主机:端口或群集ID检索群集客户端,然后使用ClusterClient将作业提交到该群集。 作业完成后,Flink群集保持不变。

在通过命令行运行Flink应用程序时,用户还可以指定附加/分离模式的选项。 如果用户应用程序仅包含单个作业,则行为如下:

  • 默认情况下,使用附加模式。 命令行进程将等到用户应用程序中的作业完成后再退出。

  • 如果将-d( detached )指定为命令行参数,则提交用户应用程序中的作业后,命令行进程将退出,但不会等待作业完成。

如果用户应用程序中有多个作业,则附加/分离的行为实际上没有很好地定义,有时可能会令人困惑。 此外,用户还可以通过配置选项-s来指定用于恢复作业的保存点路径。 更多选项及其用法可在附录中找到。

Run applications with driver mode

与当前状态类似,只有当用户通过命令行运行其应用程序时, Driver 模式才可用。 我们想要引入一个新的选项-D/-Driver to./bin/Flink run。

以yarn模式为例,用户可以执行以下命令提交启用Flink Driver 的应用程序:

bin / flink run - m yarn - cluster - D - c { ENTRY_CLASS } { PATH_TO_APPLICATION_JAR }

Driver mode behavior

由于具有 Driver 模式的应用程序可能提交多个作业,因此不再支持当前的每作业模式。 因此,需要Flink群集才能在应用程序中运行作业。

当用户应用程序在 Driver 模式下运行时,将首先创建Flink Driver 作业以承载用户应用程序的主要功能。 然后,该作业将作为一个并行度设置为1的普通Flink作业提交给定的Flink集群。 然后,该 Driver 作业将调用用户主函数,并将用户应用程序中的作业提交给运行 Driver 作业本身的同一Flink群集。

下面是Flink Driver的整体情况:

FLIP-40: Flink Driver

由于所有作业都在同一群集中运行,因此用户可以使用REST API查询作业状态并获取应用程序进度。 Driver 作业提交的作业名称将具有用户定义的作业名称的前缀。

FLIP-40: Flink Driver


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机网络

计算机网络

Andrew S. Tanenbaum / 潘爱民 / 清华大学出版社 / 2004-8-1 / 60.00元

《计算机网络(第4版)》全书按照网络协议模型(物理层、数据链路层、介质访问控制子层、网络层、传输层和应用层),自下而上系统地介绍了计算机网络的基本原理,并给出了大量实例。在讲述各网络层的同时,还融合进了近年来迅速发展起来的各种网络技术,如Internet、SONET、A DSL、CDMA、WLAN和蓝牙等。另外,针对当前计算机网络的发展现状以及计算机安全的重要性,本书用了一整章的篇幅对计算机安全进......一起来看看 《计算机网络》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具