32、Flink 的 DataStream API 物理分区算子详解

3.物理分区

Flink 提供以下方法让用户根据需要在数据转换完成后对数据分区进行更细粒度的配置。

a)自定义分区

DataStream → DataStream

使用自定义的 Partitioner 为每个元素选择目标任务。

dataStream.partitionCustom(partitioner, "someKey");
dataStream.partitionCustom(partitioner, 0);
b)随机分区

DataStream → DataStream

将元素随机地均匀划分到分区。

dataStream.shuffle();
c)Rescaling

DataStream → DataStream

将元素以 Round-robin 轮询的方式分发到下游算子。

如果想将数据源的多个并发实例的数据分发到多个下游 map 来实现负载分配,但又不想像 rebalance() 那样引起完全重新平衡,该算子将只会到本地数据传输而不是网络数据传输,这取决于其它配置值,例如 TaskManager 的 slot 数量。

上游算子将元素发往哪些下游的算子实例集合同时取决于上游和下游算子的并行度;例如,如果上游算子并行度为 2,下游算子的并发度为 6, 那么上游算子的其中一个并行实例将数据分发到下游算子的三个并行实例, 另外一个上游算子的并行实例则将数据分发到下游算子的另外三个并行实例中。再如,当下游算子的并行度为2,而上游算子的并行度为 6 的时候,那么上游算子中的三个并行实例将会分发数据至下游算子的其中一个并行实例,而另外三个上游算子的并行实例则将数据分发至另下游算子的另外一个并行实例。

当算子的并行度不是彼此的倍数时,一个或多个下游算子将从上游算子获取到不同数量的输入。

在这里插入图片描述

dataStream.rescale();
d)广播

DataStream → DataStream

将元素广播到每个分区 。

dataStream.broadcast();

相关推荐

  1. Flink物理分区概念与分类详解

    2024-05-15 15:26:10       13 阅读
  2. 2、Flink DataStreamAPI 概述(下)

    2024-05-15 15:26:10       11 阅读
  3. 31Flink DataStream API 数据流算子详解

    2024-05-15 15:26:10       16 阅读
  4. 30Flink 故障恢复详解

    2024-05-15 15:26:10       8 阅读
  5. 39Flink 窗口剔除器(Evictors)详解

    2024-05-15 15:26:10       9 阅读
  6. 37Flink 窗口函数(Window Functions)详解

    2024-05-15 15:26:10       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-15 15:26:10       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-15 15:26:10       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-15 15:26:10       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-15 15:26:10       20 阅读

热门阅读

  1. Python实战

    2024-05-15 15:26:10       15 阅读
  2. Hive内部表(管理表)和外部表的区别

    2024-05-15 15:26:10       9 阅读
  3. Intel RealSense D455深度相机驱动安装与运行

    2024-05-15 15:26:10       13 阅读
  4. 配置多个SSH密钥以访问不同平台(GitHub、Gitee)

    2024-05-15 15:26:10       14 阅读
  5. 用wordpress建外贸独立站的是主流的外贸建站方式

    2024-05-15 15:26:10       14 阅读
  6. HIVE调优

    2024-05-15 15:26:10       11 阅读
  7. AFM 433

    2024-05-15 15:26:10       14 阅读
  8. C语言-STM32:介绍PWM,并使用PWM实现呼吸灯

    2024-05-15 15:26:10       11 阅读
  9. 你眼中的IT行业现状与未来趋势

    2024-05-15 15:26:10       11 阅读
  10. Element-ui el-table组件单选/多选/跨页勾选讲解

    2024-05-15 15:26:10       18 阅读
  11. js判断是否PC端

    2024-05-15 15:26:10       13 阅读
  12. kafka管理工具 kafka-ui 的 k8s 部署

    2024-05-15 15:26:10       12 阅读
  13. mac中launchctl使用教程

    2024-05-15 15:26:10       12 阅读
  14. 使用IDEA搭建MyBatis环境

    2024-05-15 15:26:10       10 阅读