怎么确定一个Flink job的资源
怎么确定一个Flink job的资源
Slots && parallelism
一个算子的parallelism 是5 ,那么这个算子就需要5个slot,
公式 :一个算子的parallelism 是n ,那么这个算子就需要5个n
通俗理解:几个并行度,就是有几个线程处理。
如何计算Slot
如果不设置SlotSharingGroup,那么需要的Slot数为应用的最大并行度数。
设置slot就是设置线程数。
设置parallelism 的依据是什么?
一个算子到底设置几个(parallelism)线程执行呢?
solt 是用来对taskmanager内存进行平均分配的,每个solt内存都相同,也就是每一个并行度的内存是一样的。
如果一个算子需要的内存多,就多设置几个并行度。
如果一个算子需要的内存少,就少设置几个并行度,省下来的slot让给别人。因为slot是可以共享的。
怎么给一个任务分配 slot和内存?
假设有以下条件
- 集群
假设一个flink session 的一个slot 是2G内存.(如下脚本)
- 任务
你有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内存.
怎么确定一个Flink job的资源的更多相关文章
- 一个flink作业的调优
最近接手了一个flink作业,另外一个同事断断续续有的没的写了半年的,不着急,也一直没上线,最近突然要上线,扔给我,要调通上线. 现状是: 1.代码跑不动,资源给的不少,但是就是频繁反压. 2.che ...
- 构建一个flink程序,从kafka读取然后写入MYSQL
最近flink已经变得比较流行了,所以大家要了解flink并且使用flink.现在最流行的实时计算应该就是flink了,它具有了流计算和批处理功能.它可以处理有界数据和无界数据,也就是可以处理永远生产 ...
- 3、flink架构,资源和资源组
一.flink架构 1.1.集群模型和角色 如上图所示:当 Flink 集群启动后,首先会启动一个 JobManger 和一个或多个的 TaskManager.由 Client 提交任务给 JobMa ...
- Flink从入门到放弃(入门篇2)-本地环境搭建&构建第一个Flink应用
戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...
- Nginx系列2:用Nginx搭建一个可用的静态资源Web服务器
上一节中编译好自己的nginx服务器后, 现在要对nginx.conf文件进行配置,搭建一个可用的静态资源Web服务器 1.放入可访问的html文件到nginx文件夹下,如图1所示: 这里我放入的是一 ...
- [转载]android工程中引入另一个工程中的资源
原文地址:android工程中引入另一个工程中的资源作者:87fayuan 在项目中可能遇到这样的问题:项目过大,于是细分为N个子模块来做,每个模块都是不同的工程.涉及到activity传数据时,可以 ...
- 在 Cloudera Data Flow 上运行你的第一个 Flink 例子
文档编写目的 Cloudera Data Flow(CDF) 作为 Cloudera 一个独立的产品单元,围绕着实时数据采集,实时数据处理和实时数据分析有多个不同的功能模块,如下图所示: 图中 4 个 ...
- Flink使用(二)——Flink集群资源规划
前言 本文主要译自Flink Forward 2017的柏林站中Robert Metzger的有关集群规划的How to size your flink cluster一文.该文中主要是考虑网络资源, ...
- 实现iOS图片等资源文件的热更新化(五): 一个简单完整的资源热更新页面
简介 一个简单的关于页面,有一个图片,版本号,App名称等,着重演示各个系列的文章完整集成示例. 动机与意义 这是系列文章的最后一篇.今天抽空写下,收下尾.文章本身会在第四篇的基础上,简单扩充下代码, ...
随机推荐
- 能否安装 CrossOver 上没有的软件
系统兼容软件CrossOver可以像虚拟机一下帮助我们在Mac或者Linux上运行Windows应用程序,快速实现跨平台文件互通,所以我们也称它为类虚拟机. 不需要安装Windows操作系统的Cros ...
- 错误原因:因为desc是mysql里面的关键字
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check ...
- java工作两年了,连myBatis中的插件机制都玩不懂,那你工作危险了!
插件的配置与使用 在mybatis-config.xml配置文件中配置plugin结点,比如配置一个自定义的日志插件LogInterceptor和一个开源的分页插件PageInterceptor: & ...
- hashmap(有空可以看看算法这本书中对于这部分的实现,很有道理)
//转载:https://baijiahao.baidu.com/s?id=1618550070727689060&wfr=spider&for=pc 1.为什么用HashMap? H ...
- react-hash-calendar,移动端日期时间选择插件
按照惯例,先上效果图 vue 版本同款日历:https://github.com/TangSY/vue-hash-calendar react-hash-calendar 支持手势滑动操作 上下滑动 ...
- Spring Boot第一天
1.首先在idea中创建一个maven项目,创建成功后在pom.xml中添加SpringBoot相关的依赖 <!--引入SpringBoot相关的依赖--> <parent> ...
- linux命令模式配置安装mysql
系统环境: centos 7.1 使用模式:命令模式 使用工具:xshell5 . xftp5 安装mysql前必须删除干净旧的安装包和残留文件,否则安装会失败 查看旧的安装包 rpm -qa | g ...
- python升级版本
前言 目前大部分使用的3.6或者3.7以及更低版本存在不少问题,随着python的更新很多问题得到修复并且具有更多新的功能. 更新 3.y.x版本升级到3.y.z 下载需要升级的exe安装包点击upg ...
- 在 CentOS 7 安装 Tomcat
一. 安装 JDK 8 1.1 下载 JDK 8 cd /opt/ wget --no-cookies --no-check-certificate --header "Cookie: gp ...
- 2017 Mid Central Regional G.Hopscotch (组合计数)
这道题有点意思,给出点(N,N),你在原点处向目标点走,每次只能向x和y两个方向走路,每次xy两个方向的步幅分别不能小于dx和dy,问走到终点的方案数,答案对1e9 + 7取模 这道题最直接的想法就是 ...