调整资源
This commit is contained in:
parent
9853df3948
commit
f6db0f7c9a
@ -1,9 +1,7 @@
|
|||||||
|
|
||||||
<a title="Hits" target="_blank" href="https://github.com/zeekling/hits"><img src="https://hits.b3log.org/zeekling/flink_book.svg"></a>
|
# 1. 内存设置
|
||||||
|
|
||||||
# 内存设置
|
## 1.1 TaskManager 内存模型
|
||||||
|
|
||||||
## TaskManager 内存模型
|
|
||||||
|
|
||||||
TaskManager的内存模型如下图所示(1.10之后版本内存模型):
|
TaskManager的内存模型如下图所示(1.10之后版本内存模型):
|
||||||
|
|
||||||
@ -26,7 +24,7 @@ Flink 使用内存 = 框架堆内和堆外内存 + Task堆内和堆外内存 +
|
|||||||
进程内存 - Flink 内存 + JVM特有内存
|
进程内存 - Flink 内存 + JVM特有内存
|
||||||
|
|
||||||
|
|
||||||
### JVM特有内存详解
|
### 1.1.1 JVM特有内存详解
|
||||||
|
|
||||||
JVM特定内存: JVM本身使用的内存,包含JVM的metaspace和over-head
|
JVM特定内存: JVM本身使用的内存,包含JVM的metaspace和over-head
|
||||||
|
|
||||||
@ -39,7 +37,7 @@ JVM特定内存: JVM本身使用的内存,包含JVM的metaspace和over-head
|
|||||||
` 总进程内存*fraction `,如果小于配置的min或者大于配置的max大小,则使用min/max
|
` 总进程内存*fraction `,如果小于配置的min或者大于配置的max大小,则使用min/max
|
||||||
|
|
||||||
|
|
||||||
### 框架内存
|
### 1.1.2 框架内存
|
||||||
Flink框架,即TaskManager本身占用的内存,不计入Slot的资源中。
|
Flink框架,即TaskManager本身占用的内存,不计入Slot的资源中。
|
||||||
|
|
||||||
堆内:`taskmanager.memory.framework.heap.size` ,默认128mb。
|
堆内:`taskmanager.memory.framework.heap.size` ,默认128mb。
|
||||||
@ -47,7 +45,7 @@ Flink框架,即TaskManager本身占用的内存,不计入Slot的资源中。
|
|||||||
堆外:`taskmanager.memory.framework.off-heap.size`,默认128mb。
|
堆外:`taskmanager.memory.framework.off-heap.size`,默认128mb。
|
||||||
|
|
||||||
|
|
||||||
### Task内存
|
### 1.1.3 TaskManager内存
|
||||||
Task执行用户代码所使用的内存。
|
Task执行用户代码所使用的内存。
|
||||||
|
|
||||||
堆内:`taskmanager.memory,task,heap.size`,默认none,由Flink内存扣除掉其他部分内存得到。
|
堆内:`taskmanager.memory,task,heap.size`,默认none,由Flink内存扣除掉其他部分内存得到。
|
||||||
@ -55,7 +53,7 @@ Task执行用户代码所使用的内存。
|
|||||||
堆外:`taskmanager.memory,task.off-heap.size`,默认为0,表示不适用堆外内存。
|
堆外:`taskmanager.memory,task.off-heap.size`,默认为0,表示不适用堆外内存。
|
||||||
|
|
||||||
|
|
||||||
### 网络内存
|
### 1.1.4 网络内存
|
||||||
网络数据交换所使用的堆外内存大小,如网络数据交换缓冲区。
|
网络数据交换所使用的堆外内存大小,如网络数据交换缓冲区。
|
||||||
|
|
||||||
堆外:`taskmanager.memory.network.fraction`,默认0.1。
|
堆外:`taskmanager.memory.network.fraction`,默认0.1。
|
||||||
@ -66,7 +64,7 @@ Task执行用户代码所使用的内存。
|
|||||||
|
|
||||||
` Flink内存*fraction `,如果小于配置的min或者大于配置的max大小,则使用min/max
|
` Flink内存*fraction `,如果小于配置的min或者大于配置的max大小,则使用min/max
|
||||||
|
|
||||||
### 管理内存
|
### 1.1.5 管理内存
|
||||||
|
|
||||||
用于RocksDB 状态后端的本地内存和批的排序、hash、缓冲中间结果。
|
用于RocksDB 状态后端的本地内存和批的排序、hash、缓冲中间结果。
|
||||||
|
|
||||||
@ -86,19 +84,19 @@ Task执行用户代码所使用的内存。
|
|||||||
- 单个TaskManager内存大小为2-8G之间。
|
- 单个TaskManager内存大小为2-8G之间。
|
||||||
|
|
||||||
|
|
||||||
# 并行度设置
|
# 2. 并行度设置
|
||||||
并行度的设置和具体的作业强关联。
|
并行度的设置和具体的作业强关联。
|
||||||
|
|
||||||
|
|
||||||
## 并行度设置
|
## 2.1 并行度设置
|
||||||
|
|
||||||
- **flink-conf.yml设置**
|
- 2.1.1 **flink-conf.yml设置**
|
||||||
|
|
||||||
在我们提交一个Job的时候如果没有考虑并行度的话,那么Flink会使用默认配置文件中的并行度。配置如下:
|
在我们提交一个Job的时候如果没有考虑并行度的话,那么Flink会使用默认配置文件中的并行度。配置如下:
|
||||||
```conf
|
```conf
|
||||||
parallelism.default: 5
|
parallelism.default: 5
|
||||||
```
|
```
|
||||||
- **env级别**
|
- 2.1.2 **env级别**
|
||||||
|
|
||||||
env的级别就是`Environment` 级别。也就是通过`ExecutionEnvironment` 来设置整体的Job并行度。
|
env的级别就是`Environment` 级别。也就是通过`ExecutionEnvironment` 来设置整体的Job并行度。
|
||||||
|
|
||||||
@ -106,7 +104,7 @@ env的级别就是`Environment` 级别。也就是通过`ExecutionEnvironment`
|
|||||||
val env = Stream...
|
val env = Stream...
|
||||||
env.setParallelism(5);
|
env.setParallelism(5);
|
||||||
```
|
```
|
||||||
- **客户端级别**
|
- 2.1.3 **客户端级别**
|
||||||
|
|
||||||
如果在执行Job时候,发现代码中没有设置并行度而又不修改配置文件的话,可以通过Client来设置Job的并行度。
|
如果在执行Job时候,发现代码中没有设置并行度而又不修改配置文件的话,可以通过Client来设置Job的并行度。
|
||||||
```bash
|
```bash
|
||||||
@ -114,7 +112,7 @@ env.setParallelism(5);
|
|||||||
```
|
```
|
||||||
-p 即设置WordCount的Job并行度为5。
|
-p 即设置WordCount的Job并行度为5。
|
||||||
|
|
||||||
- **算子级别**
|
- 2.1.4 **算子级别**
|
||||||
|
|
||||||
我们在编写Flink项目时,可能对于不同的Operator设置不同的并行度,例如为了实现读取Kafka的最高效
|
我们在编写Flink项目时,可能对于不同的Operator设置不同的并行度,例如为了实现读取Kafka的最高效
|
||||||
读取需要参考Kafka的partition的数量对并行度进行设置,在Sink时需要对于Sink的介质设置不同的并行
|
读取需要参考Kafka的partition的数量对并行度进行设置,在Sink时需要对于Sink的介质设置不同的并行
|
||||||
|
Loading…
Reference in New Issue
Block a user