• 怎么确定一个Flink job的资源


    Slots && parallelism

    一个算子的parallelism 是5 ,那么这个算子就需要5个slot,

    公式 :一个算子的parallelism 是n ,那么这个算子就需要5个n

    通俗理解:几个并行度,就是有几个线程处理。

    如何计算Slot

    如果不设置SlotSharingGroup,那么需要的Slot数为应用的最大并行度数。

    设置slot就是设置线程数。

    设置parallelism 的依据是什么?

    一个算子到底设置几个(parallelism)线程执行呢?

    solt 是用来对taskmanager内存进行平均分配的,每个solt内存都相同,也就是每一个并行度的内存是一样的。

    如果一个算子需要的内存多,就多设置几个并行度。

    如果一个算子需要的内存少,就少设置几个并行度,省下来的slot让给别人。因为slot是可以共享的。

    怎么给一个任务分配 slot和内存?

    假设有以下条件

    1. 集群

    假设一个flink session 的一个slot 是2G内存.(如下脚本)

    1. 任务

    你有50G的数据要处理

    分配多少slot和内存是测试出来的,看哪个配置速率更快,以达到资源的合理利用.

    假设 准备给他20G内存.

    那么就是 20/2(一个slot 是2G内存) = 10 slot

    于是就是slot 10 个, 内存是20g. parallelism 是10

    脚本

    /data/flink-1.10.1/bin/flink run 
    -yid $application_id 
    -yD env.java.opts="-XX:+UseG1GC" 
    -c xxxxx.mainClass 
    /data/hadoop/data/xxxxx.jar 
    
    

    启动yarn-session 脚本

    #!/bin/bash
    
    /data/flink-1.10.1/bin/yarn-session.sh 
    -s 4 
    -jm 1g 
    -tm 8g 
    -d 
    -ynm yarn-flink
    
    一个taskmanager 8G内存,共4个slot 那么,一个slot就是2G内存.
    
  • 相关阅读:
    上一章下一章
    三、Spring-Bean高级装配
    二、Spring装配Bean
    IDEA--IDEA debug断点调试技巧
    springboot基础
    一、初识Spring
    十、理解JavaBean
    # 记一次Tomcat升级——幽灵猫
    CentOS7离线安装ansible的方法
    【转发】
  • 原文地址:https://www.cnblogs.com/weijiqian/p/14034335.html
Copyright © 2020-2023  润新知