zoukankan      html  css  js  c++  java
  • 怎么确定一个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内存.
    
  • 相关阅读:
    java,php,js;AES 互通加解密
    将本地代码上传github
    为什么我们做分布式使用Redis?
    Git服务器环境搭建(打造属于自己的存储库)
    Redhat6.5——解决yum功能不能正常使用
    数据库设计——评论回复功能
    nginx 配置信息
    Linux常用基础命令整理:关机命令、查看目录下文件命令等
    【Qt】QTabWidget 竖向 QTabBar横向
    Google BreakPad使用集
  • 原文地址:https://www.cnblogs.com/weijiqian/p/14034335.html
Copyright © 2011-2022 走看看