【API篇】四、Flink物理分区算子API

news2025/1/16 4:48:38

文章目录

  • 1、 分区算子:随机分区
  • 2、分区算子:轮询分区
  • 3、分区算子:重缩放分区
  • 4、分区算子:广播
  • 5、分区算子:全局分区
  • 6、自定义分区

重分区,即数据"洗牌",将数据分配到下游算子的并行子任务中。常见的分区策略有:

  • 随机分区
  • 轮询分区
  • 重缩放分区
  • 广播
  • 全局分区
  • 自定义分区

1、 分区算子:随机分区

调用DataStream的.shuffle()方法,将数据随机地分配到下游算子的并行任务中去。

在这里插入图片描述

demo代码:socket模拟无界流,设置并行度为2,读入数据后接shuffle,再打印

public class ShuffleExample {

    public static void main(String[] args) throws Exception {

        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

		 env.setParallelism(2);

        DataStreamSource<Integer> stream = env.socketTextStream("node01", 9527);

        stream.shuffle().print()

        env.execute();
    }
}

可以看到,数据流经过shuffle重分区后,到输出算子的哪个子任务是随机的:

在这里插入图片描述

2、分区算子:轮询分区

用DataStream的.rebalance()方法,rebalance使用的是Round-Robin负载均衡算法,就像发牌,将输入流数据平均分配到下游的并行任务中去。

在这里插入图片描述

stream.rebalance().下游算子....

3、分区算子:重缩放分区

和轮询相似,不同的是,重缩放是局部轮询,只给和它组队的分区轮询数据,而不是给所有分区。(调用rescale方法时,其实底层也是使用Round-Robin算法进行轮询)

在这里插入图片描述

stream.rescale().下游算子...

4、分区算子:广播

通常,一条数据去往一个子任务去处理即可,但广播就是:调用DataStream的broadcast()方法,将输入数据复制并发送到下游算子的所有并行任务中去

stream.broadcast().print();

在这里插入图片描述

5、分区算子:全局分区

极端的分区方式,会将数据流中的数据全都发送到下游算子的第一个子任务中去, 相当于强行让下游任务并行度变成了1(注意是相当于,不是真把下游算子并行度改成1了,只是不往其他子任务发数据了,其他有跟没有一样了)

stream.global().print();

发送数据:

在这里插入图片描述

效果:

在这里插入图片描述

6、自定义分区

以上的Flink分区策略都不满足需求时,可自定义分区策略,首先实现Partitioner接口,自定义分区器:

public class MyPartitioner implements Partitioner<String> {

    @Override
    public int partition(String key, int numPartitions) {
        return Integer.parseInt(key) % numPartitions;
    }
}

//numPartitions 下游算子并行度
//这里的分区策略,简单写个key除以算子并行度取余
//该方法返回的是分区索引

使用自定义分区器:

public class PartitionCustomDemo {
    public static void main(String[] args) throws Exception {
    
        StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(new Configuration());

        env.setParallelism(2);

        DataStreamSource<String> socketDS = env.socketTextStream("node01", 9527);

        DataStream<String> myDS = socketDS
                .partitionCustom(
                        new MyPartitioner(),
                        value -> value);
                

        myDS.print();

        env.execute();
    }
}

  • 自定义分区用的api是partitionCustom
  • partitionCustom方法第一个参数是自定义的分区器对象
  • 第二个参数是key的选择器对象KeySelector,和keyBy方法一样,value -> value即以输入数据为key

到此,就实现了数据往下游算子的子任务分配时,按什么规则来分。以上就是Flink的常用分区策略,此外,还有一种one-to-one的分区器,带上自定义分区器,共8种:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1111576.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

优思学院|六西格玛品质管理概念,实现卓越品质的艺术

在竞争激烈的商业环境中&#xff0c;企业必须不断提高产品和服务的质量&#xff0c;以满足不断增长的客户需求。在这个背景下&#xff0c;六西格玛&#xff08;6σ&#xff09;管理理念应运而生。由摩托罗拉公司的比尔史密斯于1986年提出&#xff0c;六西格玛是一种管理策略&am…

Spring5学习笔记之整合MyBatis

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Spring专栏 ✨特色专栏&#xff1a; M…

这4个网站太厉害了, 每一个都能帮你打开新世界大门

又是一期满满的干货&#xff01;今天给大家推荐几个小众但超好用的网站&#xff0c;每一个都能帮你打开新世界的大门&#xff01; 一、音分轨——在线人声分离网站 在线从任何音、视频中提取人声、伴奏和各种乐器&#xff0c;针对某一视频可以单独从里面提取人声或背景音乐&am…

Dreambooth工作原理

什么是Dreambooth 中文名&#xff1a;梦想亭。 Dreambooth 由 Google 研究团队于 2022 年发布&#xff0c;是一种通过向模型注入自定义主题来微调扩散模型&#xff08;如稳定扩散&#xff09;的技术。 所谓自定义主体&#xff0c;就是一张照片&#xff0c;但是照片主体要鲜明…

高校教务系统登录页面JS分析——广东工业大学

高校教务系统密码加密逻辑及JS逆向 本文将介绍高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文&#xff0c;你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习&#xff0c;勿用于非法用途。 一、密码加…

分布式定时任务xxljob

xxl-job的xxl为作者名徐雪里拼音首字母。 xxl-job的作者是2015年开始开发这个项目&#xff0c;那时候springmvcbootstrapadminlte 大行其道&#xff0c;所以这个框架调度器一直沿用这个架构。 一、运行调度器 调度器可以集群或单点运行&#xff0c;以单点运行为例 下载代码…

Python学习笔记——文件操作、异常捕获、模块

食用说明&#xff1a;本笔记适用于有一定编程基础的伙伴们。希望有助于各位&#xff01; 文件读取 文件操作比较常见&#xff0c;通常我们需要对文件进行读取操作&#xff1a; f1 open(assets/Files/测试文件.txt, r, encodingUTF-8)# 辨别是否可读print(f1.readable())# 读取…

MYSQL常用函数详解

今天查缺陷发现同事写的一个MYSQL的SQL中用到函数JSON_CONTAINS&#xff0c;我当时第一反应是这个函数是Mysql8新加的么&#xff1f;原来小丑尽是我自己。 有必要巩固一下Mysql函数知识&#xff0c;并记录一下。&#xff08;如果对您也有用&#xff0c;麻烦您动动发财的手点个赞…

第六届“中国法研杯”司法人工智能挑战赛进行中!

第六届“中国法研杯”司法人工智能挑战赛 赛题上新&#xff01; 第六届“中国法研杯”司法人工智能挑战赛&#xff08;LAIC2023&#xff09;目前已发布司法大模型数据和服务集成调度 、证据推理、司法大数据征文比赛、案件要素识别四大任务。本届大赛中&#xff0c;“案件要素…

找不到msvcr120.dll怎么办?msvcr120.dll丢失如何修复?

MSVCR120.dll是一个动态链接库文件&#xff0c;它是Microsoft Visual C 2012 Redistributable Package的一部分。这个文件包含了许多用于运行C应用程序的函数和类。当我们的计算机上缺少这个文件时&#xff0c;就会导致一些程序无法正常运行&#xff0c;甚至会出现系统崩溃的情…

汽车屏类产品(四):仪表Cluster

###前言 仪表Cluster/仪表盘Dashboard,作为伴随汽车诞生就存在的一个主要零部件之一,从机械到电子到数字,可以说也是逐渐发展到现在的。 目前的主流框图如下,中间processor就是主控芯片,可能有buttons/switches,有display显示屏+backlight背光,有audio->speake…

黑客技术(网络安全)学习

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟…

2023年中国多功能折叠刀产量、销量及市场规模分析[图]

多功能折叠刀是一种集多种功能于一身的刀具&#xff0c;通常包括切割、开瓶、剥皮、锯木等功能&#xff0c;可以通过折叠和展开的方式来实现不同的功能&#xff0c;具有便携、多用途、安全等特点&#xff0c;广泛应用于户外探险、露营、自驾旅行等场景。 多功能折叠刀行业分类…

【AIGC核心技术剖析】扩大富有表现力的人体姿势和形状估计SMPLer-X模型

富有表现力的人体姿势和形状估计 (EHPS) 将身体、手和面部运动捕捉与众多应用结合起来。尽管取得了令人鼓舞的进展,但当前最先进的方法仍然在很大程度上依赖于有限的训练数据集。在这项工作中,我们研究了将 EHPS 扩展到第一个通用基础模型(称为 SMPLer-X),以 ViT-Huge 作为…

layui中页面切分

1.引入Split插件 2.切屏比例设置 pallet与material为标签的id 3.html内部标签上设置切分盒子 4参考网站 : 网站链接

VMware——Window11安装VMware17(图解版)

目录 一、VMware17百度云下载二、安装三、注册 一、VMware17百度云下载 下载链接&#xff1a;https://pan.baidu.com/s/1dv_Y7ig2LUFxeHvrG2rOTA 提取码&#xff1a;elih 二、安装 下载 VMware-workstation-full-17.0.2-21581411.exe 安装包后&#xff0c;右键以管理员身份运…

AutoSar 学习路线

1 获取Spec 如何获取Autosar SPEC文档&#xff1f; 从官网获取最新的规范文档&#xff0c;网址&#xff1a;https://www.autosar.org/standards。 如果浏览器拦截&#xff0c; 点开高级&#xff0c; 点击继续访问即可。 Autosar 分Classific 和 Adaptive Platform. AUTOSAR分…

荧光EEM平滑教程(去除散射)

说明&#xff1a;本文为drEEM工具箱官网教程《Smoothing EEMs》的笔记。 瑞利散射是一种弹性散射。来自激发源的光子遇到溶液中的分子之后&#xff0c;反弹到各个方向。 最重要的是&#xff0c;瑞利散射&#xff08;的发射波长&#xff09;总是与激发波长完全相等。 因此&…

ios safari 正则兼容问题

背景: 系统是自己开发的采购管理系统; 最近升级系统之后客户反馈部分苹果手机现在在进入单据界面的时候报错, 内容显示不全; 安卓手机正常; 苹果首页是之前有使用过系统的才不行, 如果是之前没有使用过系统, 现在也是可以; 也尝试清理过缓存,更换浏览器都也是不行; 也更…

CleanMyMac苹果电脑清理软件是智商税吗?最全评测价格、清理效果一次说清

这是一篇CleanMyMac最全评测&#xff01;价格、清理效果一次说清&#xff0c;告诉你它真不是智商税! 升级Ventura系统之前&#xff0c;我用的是CleanMyMac X绿色版&#xff08;绝不提倡这个行为&#xff09;。更新到Ventura之后&#xff0c;之前很多绿色软件失效&#xff0c;浪…