Hi,all:
我在flink web面板上提交了1个job,job的并行度为15,flink集群slot总数为12,发现任务一直在created阶段等待,一段时间后报错: Caused by: org.apache.flink.runtime.jobmanager.scheduler.NoResourceAvailableException: Could not allocate the required slot within slot request timeout. Please make sure that the cluster has enough resources. 是因为slot数量必须要大于并行度吗?有没有参数可以让flink自动选择可用slot数作为job的并行度? [hidden email] |
Hi,
Flink 的调度策略会保证一个job需要的slot数恰好等于该job所有算子的最大并行度。 如果slot数量小于算子的最大并行度,则该job无法执行。可以参考[1][2]中的文档描述。 目前没有方法让flink自动选择可用slot数量作为并行度,但可以通过[3]中的几种方法来设置。 [1] https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/internals/job_scheduling.html [2] https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/concepts/flink-architecture.html#task-slots-and-resources [3] https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/dev/parallel.html Best, Shawn Huang [hidden email] <[hidden email]> 于2020年11月11日周三 下午2:58写道: > Hi,all: > 我在flink > web面板上提交了1个job,job的并行度为15,flink集群slot总数为12,发现任务一直在created阶段等待,一段时间后报错: > Caused by: > org.apache.flink.runtime.jobmanager.scheduler.NoResourceAvailableException: > Could not allocate the required slot within slot request timeout. > Please make sure that the cluster has enough resources. > > 是因为slot数量必须要大于并行度吗?有没有参数可以让flink自动选择可用slot数作为job的并行度? > > > > [hidden email] > |
你是部署的 flink standalone 集群吗?目前作业的并行度 15 是通过什么方式指定的?
流处理作业默认是至少要拿到并行度数量的 slot 才能够运行的。可以通过 Shawn 提到的 [3] 中的几种方式更改作业的并行度。另外,也可以通过配置 `taskmanager.numberOfTaskSlots` 来增加 flink 集群的 slot 数量。 Thank you~ Xintong Song On Wed, Nov 11, 2020 at 7:54 PM Shawn Huang <[hidden email]> wrote: > Hi, > > Flink 的调度策略会保证一个job需要的slot数恰好等于该job所有算子的最大并行度。 > 如果slot数量小于算子的最大并行度,则该job无法执行。可以参考[1][2]中的文档描述。 > > 目前没有方法让flink自动选择可用slot数量作为并行度,但可以通过[3]中的几种方法来设置。 > > [1] > > https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/internals/job_scheduling.html > [2] > > https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/concepts/flink-architecture.html#task-slots-and-resources > [3] > > https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/dev/parallel.html > > Best, > Shawn Huang > > > [hidden email] <[hidden email]> 于2020年11月11日周三 下午2:58写道: > > > Hi,all: > > 我在flink > > web面板上提交了1个job,job的并行度为15,flink集群slot总数为12,发现任务一直在created阶段等待,一段时间后报错: > > Caused by: > > > org.apache.flink.runtime.jobmanager.scheduler.NoResourceAvailableException: > > Could not allocate the required slot within slot request timeout. > > Please make sure that the cluster has enough resources. > > > > 是因为slot数量必须要大于并行度吗?有没有参数可以让flink自动选择可用slot数作为job的并行度? > > > > > > > > [hidden email] > > > |
是flink standalone 集群。
job并行度是在job的java代码中通过 streamExecutionEnvironment.setParallelism(15) 来指定的。 [hidden email] 发件人: Xintong Song 发送时间: 2020-11-12 13:18 收件人: user-zh 主题: Re: slot数量与并行度的大小关系 你是部署的 flink standalone 集群吗?目前作业的并行度 15 是通过什么方式指定的? 流处理作业默认是至少要拿到并行度数量的 slot 才能够运行的。可以通过 Shawn 提到的 [3] 中的几种方式更改作业的并行度。另外,也可以通过配置 `taskmanager.numberOfTaskSlots` 来增加 flink 集群的 slot 数量。 Thank you~ Xintong Song On Wed, Nov 11, 2020 at 7:54 PM Shawn Huang <[hidden email]> wrote: > Hi, > > Flink 的调度策略会保证一个job需要的slot数恰好等于该job所有算子的最大并行度。 > 如果slot数量小于算子的最大并行度,则该job无法执行。可以参考[1][2]中的文档描述。 > > 目前没有方法让flink自动选择可用slot数量作为并行度,但可以通过[3]中的几种方法来设置。 > > [1] > > https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/internals/job_scheduling.html > [2] > > https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/concepts/flink-architecture.html#task-slots-and-resources > [3] > > https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/dev/parallel.html > > Best, > Shawn Huang > > > [hidden email] <[hidden email]> 于2020年11月11日周三 下午2:58写道: > > > Hi,all: > > 我在flink > > web面板上提交了1个job,job的并行度为15,flink集群slot总数为12,发现任务一直在created阶段等待,一段时间后报错: > > Caused by: > > > org.apache.flink.runtime.jobmanager.scheduler.NoResourceAvailableException: > > Could not allocate the required slot within slot request timeout. > > Please make sure that the cluster has enough resources. > > > > 是因为slot数量必须要大于并行度吗?有没有参数可以让flink自动选择可用slot数作为job的并行度? > > > > > > > > [hidden email] > > > |
可以参考 http://www.54tianzhisheng.cn/2019/01/14/Flink-parallelism-slot/ 文章理解一下
[hidden email] <[hidden email]> 于2020年11月12日周四 下午4:47写道: > 是flink standalone 集群。 > job并行度是在job的java代码中通过 streamExecutionEnvironment.setParallelism(15) 来指定的。 > > > > [hidden email] > > 发件人: Xintong Song > 发送时间: 2020-11-12 13:18 > 收件人: user-zh > 主题: Re: slot数量与并行度的大小关系 > 你是部署的 flink standalone 集群吗?目前作业的并行度 15 是通过什么方式指定的? > > 流处理作业默认是至少要拿到并行度数量的 slot 才能够运行的。可以通过 Shawn 提到的 [3] > 中的几种方式更改作业的并行度。另外,也可以通过配置 `taskmanager.numberOfTaskSlots` 来增加 flink 集群的 > slot 数量。 > > Thank you~ > > Xintong Song > > > > On Wed, Nov 11, 2020 at 7:54 PM Shawn Huang <[hidden email]> wrote: > > > Hi, > > > > Flink 的调度策略会保证一个job需要的slot数恰好等于该job所有算子的最大并行度。 > > 如果slot数量小于算子的最大并行度,则该job无法执行。可以参考[1][2]中的文档描述。 > > > > 目前没有方法让flink自动选择可用slot数量作为并行度,但可以通过[3]中的几种方法来设置。 > > > > [1] > > > > > https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/internals/job_scheduling.html > > [2] > > > > > https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/concepts/flink-architecture.html#task-slots-and-resources > > [3] > > > > > https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/dev/parallel.html > > > > Best, > > Shawn Huang > > > > > > [hidden email] <[hidden email]> 于2020年11月11日周三 下午2:58写道: > > > > > Hi,all: > > > 我在flink > > > web面板上提交了1个job,job的并行度为15,flink集群slot总数为12,发现任务一直在created阶段等待,一段时间后报错: > > > Caused by: > > > > > > org.apache.flink.runtime.jobmanager.scheduler.NoResourceAvailableException: > > > Could not allocate the required slot within slot request timeout. > > > Please make sure that the cluster has enough resources. > > > > > > 是因为slot数量必须要大于并行度吗?有没有参数可以让flink自动选择可用slot数作为job的并行度? > > > > > > > > > > > > [hidden email] > > > > > > |
Free forum by Nabble | Edit this page |