【第二章】分析一下 Flink中的流执行模式和批执行模式

这篇具有很好参考价值的文章主要介绍了【第二章】分析一下 Flink中的流执行模式和批执行模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、什么是有界流、无界流

2、什么是批执行模式、流执行模式

3、怎样选择执行模式?

4、怎样配置执行模式?

方式1:提交计算任务时,通过参数来指定(推荐,这种方式更灵活)

方式2:在Driver程序中配置执行模式(不推荐)

5、这是一个完整的入门案例


1、什么是有界流、无界流

有界流:

        数据流定义了开始位置和结束位置,对一个计算任务而言,在计算前所有的输入数据都是已知的,不会有新的数据出现

无界流:

        数据流定义了开始位置,但没有定义结束位置,对一个计算任务而言,在计算前所有的输入数据都是未知的,会有新的数据出现


2、什么是批执行模式、流执行模式

Flink任务在运行时支持不同的执行模式(批执行模式、流执行模式),可以根据业务需求和作业特点来选择使用哪种模式。

BATCH-批执行模式:

        这种计算数据的模式和MR、SPARK相似,适用于一个已知固定的输入,只会计算一次不会连续运行作业。

STREAMING-流执行模式:

        连续增量处理数据,连续无期限的运行在无界数据上。


3、怎样选择执行模式?

BATCH-批执行模式:
        只能处理有界数据流,
不能处理无界流

STREAMING-流执行模式:
        可以处理有界数据流和无界数据流

选择原则:
        处理的数据源如果是有界流:

                        优先只用BATCH处理模式,这样会更高效(在join、聚合操作时底层做了优化)

        处理的数据源如果是无界流:

                        如果只需计算某个时刻的快照结果,可是选择BATCH处理模式

                        如果需要实时统计计算结果,需要选择STREAMING处理模式


4、怎样配置执行模式?

方式1:提交计算任务时,通过参数来指定(推荐,这种方式更灵活)

#提交Flink计算任务,并指定执行模式(默认为流执行模式)
bin/flink run -Dexecution.runtime-mode=BATCH|STREAMING|AUTOMATIC <jarFile>

方式2:在Driver程序中配置执行模式(不推荐)

  test("批执行模式&流执行模式") {
    // 获取执行环境
    val env = StreamExecutionEnvironment.getExecutionEnvironment
    // 指定批执行模式
    env.setRuntimeMode(RuntimeExecutionMode.BATCH)
    // 指定流执行模式(默认模式)
    env.setRuntimeMode(RuntimeExecutionMode.STREAMING)
    // 指定自动模式(根据数据源的边界性来决定使用哪种模式)
    env.setRuntimeMode(RuntimeExecutionMode.AUTOMATIC)
  }

官网链接:执行模式


5、这是一个完整的入门案例

开发语言:Java1.8

flink版本:flink1.17

package com.baidu.datastream.env;


/*
 * TODO 运行flink计算任务,flink提供了两种执行模式(批执行模式&流执行模式)
 *      批执行模式:接收的数据只计算一次,计算完毕后停止计算任务
 *      流执行模式:持续的计算接收数据,连续无期限的运行在无界数据上
 * 思考:怎样选择执行模式呢?
 *      一般根据数据源的特点来选择执行模式
 *      有界流,优先选择BATCH执行模式,这样会更高效(在join、聚合操作时底层做了优化)
 *      无界流,只能选择STREAMING处理模式
 * 重要提示:
 *      很少会在代码中指定执行模式,一般都是在提交任务时,通过参数来指定(这种方式更加灵活)
 *      bin/flink run -Dexecution.runtime-mode=BATCH|STREAMING|AUTOMATIC <jarFile>
 *
 * */

import org.apache.flink.api.common.RuntimeExecutionMode;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;

public class ExecutionMode {
    public static void main(String[] args) throws Exception {
        // 1.获取执行环境
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        // 指定批执行模式
        env.setRuntimeMode(RuntimeExecutionMode.BATCH);
        // 指定流执行模式(默认模式)
        //env.setRuntimeMode(RuntimeExecutionMode.STREAMING);
        // 指定自动模式(根据数据源的边界性来决定使用哪种模式)
        //env.setRuntimeMode(RuntimeExecutionMode.AUTOMATIC);

        // 注意:当数据源为`无界流`时,不能使用BATCH模式
        env.socketTextStream("127.0.0.1", 9999).print();

        env.execute();
    }
}

重要提示:

【第二章】分析一下 Flink中的流执行模式和批执行模式文章来源地址https://www.toymoban.com/news/detail-502549.html

到了这里,关于【第二章】分析一下 Flink中的流执行模式和批执行模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • <<数值分析>>第二章线性方程组的直接解法

              解线性方程组是工程数学中最常见的模型之一。所说的“最常见”有两方面的含义: 1)一部分工程问题的本身建立的就是线性方程组模型; 2)较多工程问题建立的非线性方程组模型需要转化为线性方程组的求解。           线性方程组为Ax=b,以下介绍

    2024年02月08日
    浏览(57)
  • 【算法】算法设计与分析 课程笔记 第一章&第二章

    算法的四个性质: 输入、输出、确定性和有穷性 。 1. 常见的时间复杂度 常数阶 O(1) 对数阶 O(log n) 线性阶 O(n) 线性对数阶 O(nlog n) 平方阶 O(n^2) 立方阶 O(n^3) k 次方阶 O(n^k) 指数阶 O(2^n) 注:上面的 log n 均代表 以2为底 的对数。 2. 时间复杂度排序 常见的算法时间复杂度由小到

    2024年02月09日
    浏览(45)
  • NanoEdge AI Studio 教程 第二章--异常数据分析

    OK,好久不见,各位,最近挺忙,欢迎回来。 让我们开始第二章节,异常判断。 目录 一 Nano Edge AI Studio 简单概述 二 异常判断 1.工程选择 2.进行工程设置 2.1 MCU选择 2.2 数据设定 3.输入数据 4.模型训练 5.验证 6.生成模型 7.布置模型 NanoEdge AI Studio主要可以实现的功能主要分为四

    2024年04月17日
    浏览(54)
  • 从零开始学数据分析之——《线性代数》第二章 矩阵

    元素全为实数的矩阵称为实矩阵  元素全为负数的矩阵称为复矩阵 只有一行(列)的矩阵称为行(列)矩阵 元素全为零的矩阵称为零矩阵 行数和列数都等于n的矩阵称为n阶矩阵或n阶方阵 主对角线元素全为1,其余元素全为0的矩阵称为单位矩阵,记作E或I 两个矩阵行数和列数

    2023年04月23日
    浏览(50)
  • Spark大数据分析与实战笔记(第二章 Spark基础-02)

    人生就像赛跑,不在乎你是否第一个到达尽头,而在乎你有没有跑完全程。 Spark于2009年诞生于美国加州大学伯克利分校的AMP实验室,它是一个可应用于大规模数据处理的统一分析引擎。Spark不仅计算速度快,而且内置了丰富的API,使得我们能够更加容易编写程序。 请参考《

    2024年02月03日
    浏览(67)
  • Spark大数据分析与实战笔记(第二章 Spark基础-05)

    成长是一条必走的路路上我们伤痛在所难免。 在大数据处理和分析领域,Spark被广泛应用于解决海量数据处理和实时计算的挑战。作为一个快速、可扩展且易于使用的分布式计算框架,Spark为开发人员提供了丰富的API和工具来处理和分析大规模数据集。 其中,Spark-Shell是Spar

    2024年02月03日
    浏览(117)
  • Spark大数据分析与实战笔记(第二章 Spark基础-01)

    宁愿跑起来被拌倒无数次,也不愿规规矩矩走一辈子,就算跌倒也要豪迈的笑。 Spark于2009年诞生于美国加州大学伯克利分校的AMP实验室,它是一个可应用于大规模数据处理的统一分析引擎。Spark不仅计算速度快,而且内置了丰富的API,使得我们能够更加容易编写程序。 Spark下

    2024年02月03日
    浏览(74)
  • Spark大数据分析与实战笔记(第二章 Spark基础-03)

    又回到了原点,就从现在开始我的新生活吧。 章节概要:Spark运行架构与原理 I. 引言 A. 概述Spark B. Spark的特点和优势 II. Spark运行架构概述 A. Spark集群模式 B. Spark运行模式 C. Spark执行引擎:Spark Core D. Spark计算模块:RDD E. Spark数据抽象模块:DataFrame和Dataset F. Spark资源管理器:

    2024年02月03日
    浏览(53)
  • Spark大数据分析与实战笔记(第二章 Spark基础-04)

    “春风十里,不如你。” 这句来自现代作家安妮宝贝的经典句子,它表达了对他人的赞美与崇拜。每个人都有着不同的闪光点和特长,在这个世界上,不必去羡慕别人的光芒,自己所拥有的价值是独一无二的。每个人都有无限的潜力和能力,只要勇敢展现自己,就能在人生舞

    2024年02月03日
    浏览(73)
  • linux VCS+verdi运行UVM实战(第二章)中的例子

    目录 前言 介绍 建立工程 运行代码 查看波形 总结 前言 用VCS+verdi运行了下UVM实战中的例子(第二章)。 在某宝上花了几十块,买了个虚拟机(已经安装好VCS+verdi)。直接用UVM实战中,现成的uvm代码跑了下。 UVM实战源码下载地址:UVM实战源码下载 书中DUT的功能:通过rxd接收

    2023年04月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包