Re: Flink 1.8 版本如何进行 TaskManager 的资源控制

2019-10-07 文章 Xintong Song
逸尘你好,

像你说的这种情况,可以先根据作业的并发数算出总共需要多少个slot,然后通过配置每个TM的slot数和资源大小来控制总资源开销。相关配置如下:

   - 单个TM的vcore数:yarn.containers.vcores
   - 单个TM的内存大小:taskmanager.heap.size
   - 单个TM中的slot数量:taskmanager.numberOfTaskSlots

上述配置可以在flink-conf.yaml配置文件中修改,也可以作为动态配置添加在 flink run
命令的末尾,在yarn上提交时动态配置的格式为 '-yD =' 。

Thank you~

Xintong Song



On Tue, Oct 8, 2019 at 1:59 PM LakeShen  wrote:

> Flink任务自身无法隔离CPU,我想了一下,在内存方面,你可以结合用户输入的参数提前计算出来任务使用的内存大小,同样,VCore也是。
> 最近我们这边也准备限制用户申请的资源。
>
> 龙逸尘  于2019年10月7日周一 下午4:50写道:
>
> > Dear community,
> > 我搭建了一个实时计算平台,由于历史遗留问题,目前使用的 Flink 版本是社区版1.5.0,hadoop版本是2.7.3,采用flink
> on
> > yarn ha部署,直接部署在物理机上没有使用 K8S,服务启动采用 flink run 脚本提交 yarn per-job 任务。
> > 目前想将 Flink 版本升级到 1.8 以上的版本,但是遇到了资源控制的问题,情况具体描述如下:
> > 1.5 版本:
> > 任务采用 Legacy 运行模式,一个 TaskManager 对应一个 slot,通过在命令行中设置 -yn 参数来控制 TM
> > 的数量,设置 -ytm 参数来控制 TM 的内存,设置 -s 参数来控制任务的总 cpu 数(slot 数*taskmanager
> > 数),脚本示例如下:
> >
> > flink run -m yarn-cluster -d -yjm 2048 -ys 1 -yn 2 -ytm 4096
> > WordCount.jar
> >
> > 1.8 版本:
> > 任务已经废除 Legacy 运行模式,并将 -yn 参数置为 deprecated,log 如下:
> > The argument yn is deprecated in will be ignored
> > 追踪源码发现,slot 数仅仅与任务的并行度有关,所以无法通过命令行进行限制总内存与 CPU 数目
> >
> > 我的问题:
> > 1.由于用户代码是直接提交到平台上的,无法知道程序的并行度,是否有机制可以预先限制YARN per-job 模式下 Flink
> > 任务的总内存与 CPU 数目?
> > 2.各位公司搭建的实时计算平台,一般是如何进行运算资源的限制的?
> >
> > 期待解答,祝好!
> >
>


Re: Flink 1.8 版本如何进行 TaskManager 的资源控制

2019-10-07 文章 LakeShen
Flink任务自身无法隔离CPU,我想了一下,在内存方面,你可以结合用户输入的参数提前计算出来任务使用的内存大小,同样,VCore也是。
最近我们这边也准备限制用户申请的资源。

龙逸尘  于2019年10月7日周一 下午4:50写道:

> Dear community,
> 我搭建了一个实时计算平台,由于历史遗留问题,目前使用的 Flink 版本是社区版1.5.0,hadoop版本是2.7.3,采用flink on
> yarn ha部署,直接部署在物理机上没有使用 K8S,服务启动采用 flink run 脚本提交 yarn per-job 任务。
> 目前想将 Flink 版本升级到 1.8 以上的版本,但是遇到了资源控制的问题,情况具体描述如下:
> 1.5 版本:
> 任务采用 Legacy 运行模式,一个 TaskManager 对应一个 slot,通过在命令行中设置 -yn 参数来控制 TM
> 的数量,设置 -ytm 参数来控制 TM 的内存,设置 -s 参数来控制任务的总 cpu 数(slot 数*taskmanager
> 数),脚本示例如下:
>
> flink run -m yarn-cluster -d -yjm 2048 -ys 1 -yn 2 -ytm 4096
> WordCount.jar
>
> 1.8 版本:
> 任务已经废除 Legacy 运行模式,并将 -yn 参数置为 deprecated,log 如下:
> The argument yn is deprecated in will be ignored
> 追踪源码发现,slot 数仅仅与任务的并行度有关,所以无法通过命令行进行限制总内存与 CPU 数目
>
> 我的问题:
> 1.由于用户代码是直接提交到平台上的,无法知道程序的并行度,是否有机制可以预先限制YARN per-job 模式下 Flink
> 任务的总内存与 CPU 数目?
> 2.各位公司搭建的实时计算平台,一般是如何进行运算资源的限制的?
>
> 期待解答,祝好!
>


Flink 1.8 版本如何进行 TaskManager 的资源控制

2019-10-07 文章 龙逸尘
Dear community,
我搭建了一个实时计算平台,由于历史遗留问题,目前使用的 Flink 版本是社区版1.5.0,hadoop版本是2.7.3,采用flink on
yarn ha部署,直接部署在物理机上没有使用 K8S,服务启动采用 flink run 脚本提交 yarn per-job 任务。
目前想将 Flink 版本升级到 1.8 以上的版本,但是遇到了资源控制的问题,情况具体描述如下:
1.5 版本:
任务采用 Legacy 运行模式,一个 TaskManager 对应一个 slot,通过在命令行中设置 -yn 参数来控制 TM
的数量,设置 -ytm 参数来控制 TM 的内存,设置 -s 参数来控制任务的总 cpu 数(slot 数*taskmanager 数),脚本示例如下:

flink run -m yarn-cluster -d -yjm 2048 -ys 1 -yn 2 -ytm 4096
WordCount.jar

1.8 版本:
任务已经废除 Legacy 运行模式,并将 -yn 参数置为 deprecated,log 如下:
The argument yn is deprecated in will be ignored
追踪源码发现,slot 数仅仅与任务的并行度有关,所以无法通过命令行进行限制总内存与 CPU 数目

我的问题:
1.由于用户代码是直接提交到平台上的,无法知道程序的并行度,是否有机制可以预先限制YARN per-job 模式下 Flink
任务的总内存与 CPU 数目?
2.各位公司搭建的实时计算平台,一般是如何进行运算资源的限制的?

期待解答,祝好!