From 0abb80528fc2846a8e10beef4654646b00fe45f7 Mon Sep 17 00:00:00 2001 From: zeekling Date: Sun, 20 Aug 2023 14:56:32 +0000 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0broadcast=E3=80=81BlobServer?= =?UTF-8?q?=20(#26)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://git.zeekling.cn/big-data/flink_book/issues/15 Reviewed-on: https://git.zeekling.cn/big-data/flink_book/pulls/26 --- basic/blobServer.md | 24 ++++++++++++++++++++++++ basic/broadcast.md | 14 ++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 basic/blobServer.md create mode 100644 basic/broadcast.md diff --git a/basic/blobServer.md b/basic/blobServer.md new file mode 100644 index 0000000..2a22ad9 --- /dev/null +++ b/basic/blobServer.md @@ -0,0 +1,24 @@ + +Flink中提供了一种Blob服务,用来进行包的管理。 + +Flink当中按照支持BLOB文件类型分为: + +- jar包:被user classloader使用的jar包。 +- 高负荷RPC消息。 + - RPC消息长度超出了akka.framesize的大小。 + - 在HA摸式中,利用底层分布式文件系统分发单个高负荷RPC消息,比如: TaskDeploymentDescriptor,给多个接受对象。 + - 失败导致重新部署过程中复用RPC消息 +- TaskManager的日志文件。 + - 为了在web ui上展示taskmanager的日志。 + + +按存储特性分为: +- `PERMANENT_BLOB`:生命周期和job的生命周期一致,并且是可恢复的。会上传到BlobStore分布式文件系统中。 +- `TRANSIENT_BLOB`:生命周期由用户自行管理,并且是不可恢复的。不会上传到BlobStore分布式文件系统中。 + + +![pic](https://pan.zeekling.cn/flink/basic/blobServer0001.png) + + +BLOB底层存储,支持多种实现`HDFS`,`S3`,`FTP`等,HA中使用BlobStore进行文件的恢复。 + diff --git a/basic/broadcast.md b/basic/broadcast.md new file mode 100644 index 0000000..8b1142a --- /dev/null +++ b/basic/broadcast.md @@ -0,0 +1,14 @@ + +## 简介 + +Join优化可分为如下: + +1. `OPTIMIZER_CHOOSES`:让优化器自己选择最优的方案。 +2. `BROADCAST_HASH_FIRST`:适用于左表数据远小于右表数据,会将左表数据进行广播。 +3. `BROADCAST_HASH_SECOND`: 适用于左表数据远大于右表数据,会将右表数据进行广播。 +4. `REPARTITION_HASH_FIRST`:适用于左表数据比右表数据大一点点,会将左表和右表数据进行重分区,将左表进行hash。 +5. `REPARTITION_HASH_SECOND`:适用于右表数据比左表数据大一点点,会将左表和右表数据进行重分区,将右表进行hash。 +6. `REPARTITION_SORT_MERGE`: 将左表和右表数据进行重分区,并且进行排序合并。 + + +