This post was updated on .
各位好:
我在使用flink的过程中遇到了下面的问题,刚开始接触flink,对排查问题的思路不是很清晰,麻烦大家提供下思路哈,谢谢。 应用场景:我这里使用Standalone Cluster方式搭建了一flink集群,其中Task Managers=10,Task Slots=54。 flink的stream过程大致为: kafka topic1的数据 --> 异步调用外部资源对数据填充 --> 存入kafka topic2。 其中topic1的分区有100个,数据是平均分布的。topic2的分区有50个。 异步调用使用的flink RichAsyncFunction,无序。外部资源就是一个web服务,但是业务逻辑很复杂,处理时间比较久,平均5秒左右,使用nginx代理了多个节点进行服务。 提交任务时指定的并发度为50. 遇到的问题:checkpoint始终超时,而且执行时间非常久。使用bin/flink savepoint xxx也会超时。取消了之前的任务,将CheckpointTimeout重新设置为3小时目前成功,之前是1小时全部失败。看了其他的资料,推测是背压造成的。 checkpoint配置: final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.enableCheckpointing(1000 * 60 * 3); //3m env.getCheckpointConfig().setCheckpointTimeout(1000 * 60 * 180); //3h,之前配置的1小时,都失败了,这次改为3小时。 env.getCheckpointConfig().setMinPauseBetweenCheckpoints(1000 * 10); //间隔10s StateBackend backend = new RocksDBStateBackend(filebackend, true); //使用RocksDBStateBackend增量 env.setStateBackend(backend); 求助:请问遇到这个问题该怎么排查呢?为什么checkpoint时间会消耗这么长,可能的原因是什么呢?查看上游背压一直是high,下游因为要调用外部web服务所以消费速度低,怎么解决这个问题呢?请各位提供下建议,谢谢哈。 web ui截图: 刚刚看了下,运行了1个多小时的checkpoint终于成功了一个。 背压情况: 上游一直是high,不正常 祝各位一切顺利! |
hi
图挂了,对于排查 checkpoint 的问题排查,可以参考下这个篇文章[1] [1] https://mp.weixin.qq.com/s/0jTVXa9ktyLynwvRelRYYg Best, Congxian lg <[hidden email]> 于2019年10月10日周四 下午4:18写道: > 各位好: > 我在使用flink的过程中遇到了下面的问题,刚开始接触flink,对排查问题的思路不是很清晰,麻烦大家提供下思路哈,谢谢。 > > * 应用场景:*我这里使用Standalone Cluster方式搭建了一flink集群,其中Task Managers=10,Task > Slots=54。 > flink的stream过程大致为: kafka topic1的数据 --> 异步调用外部资源对数据填充 > --> 存入kafka topic2。 > 其中topic1的分区有100个,数据是平均分布的。topic2的分区有50个。 > 异步调用使用的flink > RichAsyncFunction,无序。外部资源就是一个web服务,但是业务逻辑很复杂,处理时间比较久,平均5秒左右,使用nginx代理了多个节点进行服务。 > 提交任务时指定的并发度为50. > > *遇到的问题*:checkpoint始终超时,而且执行时间非常久。使用bin/flink savepoint xxx也会超时。取消了之前的任务,将 > CheckpointTimeout重新设置为3小时目前成功,之前是1小时全部失败。看了其他的资料,推测是背压造成的。 > > *checkpoint配置:* > final StreamExecutionEnvironment env = > StreamExecutionEnvironment.getExecutionEnvironment(); > env.enableCheckpointing(1000 * 60 * 3); //3m > env.getCheckpointConfig().setCheckpointTimeout(1000 * 60 * 180); > //3h,之前配置的1小时,都失败了,这次改为3小时。 > env.getCheckpointConfig().setMinPauseBetweenCheckpoints(1000 * 10); > //间隔10s > StateBackend backend = new RocksDBStateBackend(filebackend, true); > //使用RocksDBStateBackend增量 > env.setStateBackend(backend); > > > *求助:请问遇到这个问题该怎么排查呢?为什么checkpoint时间会消耗这么长,可能的原因是什么呢?查看上游背压一直是high,下游因为要调用外部web服务所以消费速度低,怎么解决这个问题呢?请各位提供下建议,谢谢哈。* > > *web ui截图:* > 刚刚看了下,运行了1个多小时的checkpoint终于成功了一个。 > 背压情况: 上游一直是high,不正常 > > > 祝各位一切顺利! > > > > > > |
Free forum by Nabble | Edit this page |