你配置的 jobmanager.execution.failover-strategy 是什么呢?如果是 region 的话,作业不会因为 Task 
失败状态变为异常。
可以在WEB ui 进入作业拓扑查看单个 task 的状态


Best
Weihua Hu

> 2020年4月26日 11:43,yanggang_it_job <[email protected]> 写道:
> 
> 感谢您的回复,这个问题和您刚才给我的场景有些相似,但还是有些许差异。
> 刚才试了几种方式,图片好像都无法访问。
> 下面我详细介绍下异常情况
> 1、我的任务是从三个kafka读取,然后通过onGroup实现left 
> join语义,然后定义了一个滑动窗口(600,10),最后通过一个CoGroupFunction进行处理具体的数据
> 2、异常出现在其中一个CoGruopFunction(Window(TumblingEventTimeWindows(600000), 
> EventTimeTrigger, CoGroupWindowFunction) (15/200))报OOM,异常栈如下
>      java.lang.OutOfMemoryError: unable to create newnative thread
>    at java.lang.Thread.start0(NativeMethod)
>    at java.lang.Thread.start(Thread.java:717)
>    at 
> java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:957)
>    at 
> java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1378)
>    at 
> org.apache.flink.streaming.runtime.tasks.StreamTask$CheckpointingOperation.executeCheckpointing(StreamTask.java:1237)
>    at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.checkpointState(StreamTask.java:872)
>    at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.performCheckpoint(StreamTask.java:777)
>    at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.triggerCheckpointOnBarrier(StreamTask.java:708)
>    at 
> org.apache.flink.streaming.runtime.io.CheckpointBarrierHandler.notifyCheckpoint(CheckpointBarrierHandler.java:88)
>    at 
> org.apache.flink.streaming.runtime.io.CheckpointBarrierTracker.processBarrier(CheckpointBarrierTracker.java:137)
>    at 
> org.apache.flink.streaming.runtime.io.CheckpointedInputGate.pollNext(CheckpointedInputGate.java:155)
>    at 
> org.apache.flink.streaming.runtime.io.StreamTaskNetworkInput.pollNextNullable(StreamTaskNetworkInput.java:102)
>    at 
> org.apache.flink.streaming.runtime.io.StreamTaskNetworkInput.pollNextNullable(StreamTaskNetworkInput.java:47)
>    at 
> org.apache.flink.streaming.runtime.io.StreamOneInputProcessor.processInput(StreamOneInputProcessor.java:135)
>    at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.processInput(StreamTask.java:279)
>    at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.run(StreamTask.java:301)
>    at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:406)
>    at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:705)
>    at org.apache.flink.runtime.taskmanager.Task.run(Task.java:530)
>    at java.lang.Thread.run(Thread.java:748)
> 
> 3、除了这个算子vertice为FAILED,其他vertice都为CANCELED,JobManager状态为RUNNING
> 
> 
> 正常情况下出现这个错,JM会找一台合适的机器重新把TM启起来或者多次尝试后,任务退出。
> 但是现在任务的运行状态为RUNNING,虽然为RUNNING但是也不写入数据到下游存储。
> 
> 
> 
> 
> 
> 
> 
> thanks
> 
> 
> 在 2020-04-26 11:01:04,"Zhefu PENG" <[email protected]> 写道:
>> 图好像挂了看不到。是不是和这两个场景描述比较相似
>> 
>> [1] http://apache-flink.147419.n8.nabble.com/flink-kafka-td2386.html
>> [2]  http://apache-flink.147419.n8.nabble.com/Flink-Kafka-td2390.html
>> On Sun, Apr 26, 2020 at 10:58 yanggang_it_job <[email protected]>
>> wrote:
>> 
>>> 1、Flink-UI截图
>>> 我任务的启动配置是 -p 200 -ys 5,也就是说会有40个TM运行,之前正常运行的时候确实是40个TM,而现在只有1个TM在运行;
>>> 同时通过观察数据的同步时间,任务已经在两天前停止写入数据了,但是查看任务的状态却是RUNNING;
>>> 我的理解是当tm申请失败,那么当前任务就会退出并把状态设置为FINISHED,但是真实情况却是上面描述那样。
>>> 请问为什么会出现这种情况呢?
>>> 
>>> thanks
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 

回复