文章目录

  • 一.数据重分区
  • 参考:

一.数据重分区

重分区操作,在DataStream类中可以看到很多Partitioner字眼的类。
其中partitionCustom(…)方法用于自定义重分区。

测试代码:

package org.flink.transform;/*** @author 只是甲* @date   2021-08-31* @remark Flink 基础Transform  重分区*/import org.flink.beans.SensorReading;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;public class TransformTest6_Partition {public static void main(String[] args) throws Exception{// 创建执行环境StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();// 设置并行度 = 4env.setParallelism(4);// 从文件读取数据DataStream<String> inputStream = env.readTextFile("C:\\Users\\Administrator\\IdeaProjects\\FlinkStudy\\src\\main\\resources\\sensor.txt");// 转换成SensorReading类型DataStream<SensorReading> dataStream = inputStream.map(line -> {String[] fields = line.split(",");return new SensorReading(fields[0], new Long(fields[1]), new Double(fields[2]));});// SingleOutputStreamOperator多并行度默认就rebalance,轮询方式分配dataStream.print("input");// 1. shuffle (并非批处理中的获取一批后才打乱,这里每次获取到直接打乱且分区)DataStream<String> shuffleStream = inputStream.shuffle();shuffleStream.print("shuffle");// 2. keyBy (Hash,然后取模)dataStream.keyBy(SensorReading::getId).print("keyBy");// 3. global (直接发送给第一个分区,少数特殊情况才用)dataStream.global().print("global");env.execute();}
}

测试记录:
如下截图可以看到:

  1. input标记的是rebalance,均匀分布
  2. global全部都分配到进程1了
  3. keyBy非均匀分布 sensor_1 全部都分配到了进程1
  4. shuffle 就有点随机了

参考:

  1. https://www.bilibili.com/video/BV1qy4y1q728
  2. https://ashiamd.github.io/docsify-notes/#/study/BigData/Flink/%E5%B0%9A%E7%A1%85%E8%B0%B7Flink%E5%85%A5%E9%97%A8%E5%88%B0%E5%AE%9E%E6%88%98-%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0?id=_521-%e4%bb%8e%e9%9b%86%e5%90%88%e8%af%bb%e5%8f%96%e6%95%b0%e6%8d%ae

Flink基础系列20-数据重分区操作相关推荐

  1. 夯实Java基础系列20:从IDE的实现原理聊起,谈谈那些年我们用过的Java命令

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  2. Flink基础系列17-Tranform之多流转换算子

    文章目录 一.多流转换算子概述 1.1 Split和Select 1.2 Connect和CoMap 1.3 Union 二.代码实现 参考: 一.多流转换算子概述 多流转换算子一般包括: Split ...

  3. Flink基础系列8-Flink on yarn运行wordcount程序

    文章目录 环境介绍 一.Maven配置 二.Java代码编写 三.Maven打包并上传 四.运行jar文件 五.运行其它的class文件 参考 环境介绍 测试服务器CDH 6.3.1版本安装Flink ...

  4. Flink基础系列7-通过Web UI执行jar文件

    文章目录 环境准备 一.准备代码 1.1 maven准备 1.2 Java代码准备 二.打包 三.通过Web UI执行jar文件 3.1 上传文件 环境准备 本地Windows环境已安装Flink 1 ...

  5. php基础系列之 数据的存储和读取

    ·文件处理 ·写入一个文件 1,打开这个文件.如果这个文件不存在,需要先创建它 2,将数据写入这个文件 3,关闭这个文件 ·从一个文件读出数据 1,打开这个文件.如果这个文件不能打开(例如,文件不存在 ...

  6. Flink基础系列6-flink run参数

    执行 flink run 后参数: 参数说明 Action "run" compiles and runs a program. Syntax: run [OPTIONS] < ...

  7. 大数据入门基础系列之初步认识大数据生态系统圈(博主推荐)

    不多说,直接上干货! 之前在微信公众平台里写过 大数据入门基础系列之初步认识hadoop生态系统圈 http://mp.weixin.qq.com/s/KE09U5AbFnEdwht44FGrOA 大 ...

  8. 大数据基础系列 5:Hadoop 实验——熟悉常用的 HDFS 目录操作和文件操作

    文章目录 前言 一.实验目的 二.实验平台 三.实验内容和要求 3.1.HDFS 目录操作 3.1.1.创建用户目录 3.1.2.显示 HDFS 中与当前用户对应的目录内容 3.1.3.列出 HDFS ...

  9. STM32 基础系列教程 20 - RTC

    前言 学习stm32 RTC(实时时钟)的使用,学会用RTC实现钟表功能. 示例详解 基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是 STM32F103c8t6, 使用stm3 ...

最新文章

  1. LeetCode简单题之打折购买糖果的最小开销
  2. C# WinForm获取当前路径汇总
  3. 浅谈Struts2和Sturts1的区别
  4. PercentFrameLayout(百分比布局)的基本使用
  5. Java虚拟机(JVM)参数配置说明
  6. docker lnmp php
  7. PHP错误:Warning: preg_replace() [function.preg-replace]: Unknown modifier '[' in
  8. Android 功耗优化(13)---功耗基础知识
  9. scala学习-Description Resource Path Location Type value toDF is not a member of org.apache.spark.rdd.R
  10. java的joptionpane空白_java – JOptionPane无法正确显示?
  11. 如何获得select被选中option的value和text和......
  12. 简易呼吸灯c语言程序,51单片机(呼吸灯)C语言版
  13. KindEditor上传图片和修改图片
  14. Maya界面编程入门:在Maya中使用Qt
  15. 输入一个大写字母,打印菱形
  16. python求一个数所有因数
  17. 怎样配置炒股用的计算机,炒股专用电脑配置
  18. 【蓝桥杯集训·每日一题】AcWing 3777. 砖块
  19. 在等吴恩达深度学习第5课的时候,你可以先看看第4课的笔记
  20. 用 FC FOR nexenta 山寨SAN存储

热门文章

  1. web前端之html图片操作详解从零开始(三)----img标签
  2. Java+Aspose.diagram,导出数据到Visio
  3. 【阿里云资讯】如何让云计算安全变得更“聪明”
  4. NeurIPS 2022 | FSD:全稀疏的3D目标检测器(中科院图森未来)
  5. PySCENIC(三):pyscenic单细胞转录因子分析可视化
  6. clientX、offsetX、layerX、screenX、pageX、x的区别
  7. 解释清楚常见网络设备的部署模式及优缺点
  8. 莫言称获奖是文学的胜利 批判社会黑暗凌厉严肃-莫言-诺贝尔文学奖-出国
  9. 2021各高校计算机保研夏令营经验贴
  10. TortoiseSVN部分Checkout以及删除本地Checkout目录而不影响仓库