Flink与Yarn的状态一致性问题

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

Flink与Yarn的状态一致性问题

amenhub@163.com
hi everyone,


最近在使用Flink-1.11.1 On Yarn Per Job模式提交简单的kafka->mysql任务时,发现当有脏数据或mysql主键限制等等原因导致Flink任务状态置为Failed时,Yarn application仍处于运行状态


疑问是Flink任务处于Failed或Finished时,不会反馈自身状态给Yarn吗?期待大佬解惑,谢谢


best,
amenhub
Reply | Threaded
Open this post in threaded view
|

回复: Flink与Yarn的状态一致性问题

1101300123
可以设置检查点失败任务也失败



发自vivo智能手机
> hi everyone,
>
> 最近在使用Flink-1.11.1 On Yarn Per Job模式提交简单的kafka->mysql任务时,发现当有脏数据或mysql主键限制等等原因导致Flink任务状态置为Failed时,Yarn application仍处于运行状态
>
> 疑问是Flink任务处于Failed或Finished时,不会反馈自身状态给Yarn吗?期待大佬解惑,谢谢
>
> best,
> amenhub
Reply | Threaded
Open this post in threaded view
|

Re: Flink与Yarn的状态一致性问题

zhisheng
同遇见过这个问题,所以作业监控告警的时候一般都是拿作业所有的 task 级别的状态,而不是简单的 yarn 状态

hdxg1101300123 <[hidden email]> 于2020年11月12日周四 下午8:07写道:

> 可以设置检查点失败任务也失败
>
>
>
> 发自vivo智能手机
> > hi everyone,
> >
> > 最近在使用Flink-1.11.1 On Yarn Per
> Job模式提交简单的kafka->mysql任务时,发现当有脏数据或mysql主键限制等等原因导致Flink任务状态置为Failed时,Yarn
> application仍处于运行状态
> >
> > 疑问是Flink任务处于Failed或Finished时,不会反馈自身状态给Yarn吗?期待大佬解惑,谢谢
> >
> > best,
> > amenhub
Reply | Threaded
Open this post in threaded view
|

Re: Flink与Yarn的状态一致性问题

tison
PerJob 模式下,在作业完全挂掉之后,是会上报 YARN RM 应用自己失败的状态的。

当然,在 FLINK 察觉自己 FAILED 到上报给 YARN 是有一定的时延的,也有可能因为网络等问题上报失败。

你这个是短暂的不一致时间窗口,还是说 FLINK 集群已经退了,YARN 的状态还没有变化呢?

Best,
tison.


zhisheng <[hidden email]> 于2020年11月12日周四 下午8:17写道:

> 同遇见过这个问题,所以作业监控告警的时候一般都是拿作业所有的 task 级别的状态,而不是简单的 yarn 状态
>
> hdxg1101300123 <[hidden email]> 于2020年11月12日周四 下午8:07写道:
>
> > 可以设置检查点失败任务也失败
> >
> >
> >
> > 发自vivo智能手机
> > > hi everyone,
> > >
> > > 最近在使用Flink-1.11.1 On Yarn Per
> > Job模式提交简单的kafka->mysql任务时,发现当有脏数据或mysql主键限制等等原因导致Flink任务状态置为Failed时,Yarn
> > application仍处于运行状态
> > >
> > > 疑问是Flink任务处于Failed或Finished时,不会反馈自身状态给Yarn吗?期待大佬解惑,谢谢
> > >
> > > best,
> > > amenhub
>
Reply | Threaded
Open this post in threaded view
|

Re: Re: Flink与Yarn的状态一致性问题

amenhub@163.com
>>>当然,在 FLINK 察觉自己 FAILED 到上报给 YARN 是有一定的时延的,也有可能因为网络等问题上报失败。
按照这个说法,应当是偶发性行为,然而我一直等待Flink上报,大概几个小时过去了Yarn状态仍然处于Running..

>>>你这个是短暂的不一致时间窗口,还是说 FLINK 集群已经退了,YARN 的状态还没有变化呢?
这个话没有看懂,我的提交方式是./bin/flink run -m yarn-cluster xxx,Flink版本是1.11.1

昨天在社区邮件里发现了Flink-1.10以前可以通过-d参数解决Per-job模式下Flink web ui状态为Failed的时候,实时反馈Failed状态给Yarn,从而解决Yarn仍为Running的问题,
也提到说Flink-1.10及以后的Per-job模式是YarnJobClusterEntrypoint,这个确实没错,但是我面临的问题仍然和Flink-1.10以前的问题一致,
就是Flink web ui观察任务已经Fail掉了,但Yarn application仍然在Running

另外,发现Flink web ui观察任务如果是Finished的话,也会处于Running,这个算属于正常吗?(以上描述的作业都是Streaming job)

best,
amenhub


 
发件人: tison
发送时间: 2020-11-13 11:01
收件人: user-zh
主题: Re: Flink与Yarn的状态一致性问题
PerJob 模式下,在作业完全挂掉之后,是会上报 YARN RM 应用自己失败的状态的。
 
当然,在 FLINK 察觉自己 FAILED 到上报给 YARN 是有一定的时延的,也有可能因为网络等问题上报失败。
 
你这个是短暂的不一致时间窗口,还是说 FLINK 集群已经退了,YARN 的状态还没有变化呢?
 
Best,
tison.
 
 
zhisheng <[hidden email]> 于2020年11月12日周四 下午8:17写道:
 

> 同遇见过这个问题,所以作业监控告警的时候一般都是拿作业所有的 task 级别的状态,而不是简单的 yarn 状态
>
> hdxg1101300123 <[hidden email]> 于2020年11月12日周四 下午8:07写道:
>
> > 可以设置检查点失败任务也失败
> >
> >
> >
> > 发自vivo智能手机
> > > hi everyone,
> > >
> > > 最近在使用Flink-1.11.1 On Yarn Per
> > Job模式提交简单的kafka->mysql任务时,发现当有脏数据或mysql主键限制等等原因导致Flink任务状态置为Failed时,Yarn
> > application仍处于运行状态
> > >
> > > 疑问是Flink任务处于Failed或Finished时,不会反馈自身状态给Yarn吗?期待大佬解惑,谢谢
> > >
> > > best,
> > > amenhub
>
Reply | Threaded
Open this post in threaded view
|

Re:Re: Re: Flink与Yarn的状态一致性问题

kingdomad
这个问题我也遇到过。
1.11版本,提交任务如果没加-d参数,flink程序挂掉了,但是yarn的application还一直是running状态,就相当于一个常驻的yarn session。
加上-d的话才能把flink程序和yarn application的生命周期捆绑到一起。




--

kingdomad







在 2020-11-13 11:16:02,"[hidden email]" <[hidden email]> 写道:

>>>>当然,在 FLINK 察觉自己 FAILED 到上报给 YARN 是有一定的时延的,也有可能因为网络等问题上报失败。
>按照这个说法,应当是偶发性行为,然而我一直等待Flink上报,大概几个小时过去了Yarn状态仍然处于Running..
>
>>>>你这个是短暂的不一致时间窗口,还是说 FLINK 集群已经退了,YARN 的状态还没有变化呢?
>这个话没有看懂,我的提交方式是./bin/flink run -m yarn-cluster xxx,Flink版本是1.11.1
>
>昨天在社区邮件里发现了Flink-1.10以前可以通过-d参数解决Per-job模式下Flink web ui状态为Failed的时候,实时反馈Failed状态给Yarn,从而解决Yarn仍为Running的问题,
>也提到说Flink-1.10及以后的Per-job模式是YarnJobClusterEntrypoint,这个确实没错,但是我面临的问题仍然和Flink-1.10以前的问题一致,
>就是Flink web ui观察任务已经Fail掉了,但Yarn application仍然在Running
>
>另外,发现Flink web ui观察任务如果是Finished的话,也会处于Running,这个算属于正常吗?(以上描述的作业都是Streaming job)
>
>best,
>amenhub
>
>
>
>发件人: tison
>发送时间: 2020-11-13 11:01
>收件人: user-zh
>主题: Re: Flink与Yarn的状态一致性问题
>PerJob 模式下,在作业完全挂掉之后,是会上报 YARN RM 应用自己失败的状态的。
>
>当然,在 FLINK 察觉自己 FAILED 到上报给 YARN 是有一定的时延的,也有可能因为网络等问题上报失败。
>
>你这个是短暂的不一致时间窗口,还是说 FLINK 集群已经退了,YARN 的状态还没有变化呢?
>
>Best,
>tison.
>
>
>zhisheng <[hidden email]> 于2020年11月12日周四 下午8:17写道:
>
>> 同遇见过这个问题,所以作业监控告警的时候一般都是拿作业所有的 task 级别的状态,而不是简单的 yarn 状态
>>
>> hdxg1101300123 <[hidden email]> 于2020年11月12日周四 下午8:07写道:
>>
>> > 可以设置检查点失败任务也失败
>> >
>> >
>> >
>> > 发自vivo智能手机
>> > > hi everyone,
>> > >
>> > > 最近在使用Flink-1.11.1 On Yarn Per
>> > Job模式提交简单的kafka->mysql任务时,发现当有脏数据或mysql主键限制等等原因导致Flink任务状态置为Failed时,Yarn
>> > application仍处于运行状态
>> > >
>> > > 疑问是Flink任务处于Failed或Finished时,不会反馈自身状态给Yarn吗?期待大佬解惑,谢谢
>> > >
>> > > best,
>> > > amenhub
>>
Reply | Threaded
Open this post in threaded view
|

Re: Flink与Yarn的状态一致性问题

JasonLee
In reply to this post by amenhub@163.com
hi
1,首先确定你提交的是per-job模式吗?
2,你说的任务状态是说jm还在任务在failover,还是任务确实是挂了,jm已经退出了?




-----
Best Wishes
JasonLee
--
Sent from: http://apache-flink.147419.n8.nabble.com/
Best Wishes
JasonLee
Reply | Threaded
Open this post in threaded view
|

Re: Re: Flink与Yarn的状态一致性问题

amenhub@163.com
hi
1.确定提交的是Per-job模式,提交命令是./bin/flink run -m yarn-cluster xxx,并且从Flink web ui中的Job Manager -> Configuration观察到execution.target值为yarn-per-job
2.整体任务状态为Failed,但是TM挂了,JM没有挂(没有挂的原因猜测是因为Yarn application还在Running的原因吧?所以还能从Job Manager -> logs查看失败日志内容)

best,
amenhub



 
发件人: JasonLee
发送时间: 2020-11-13 11:22
收件人: user-zh
主题: Re: Flink与Yarn的状态一致性问题
hi
1,首先确定你提交的是per-job模式吗?
2,你说的任务状态是说jm还在任务在failover,还是任务确实是挂了,jm已经退出了?
 
 
 
 
-----
Best Wishes
JasonLee
--
Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: Re: Flink与Yarn的状态一致性问题

amenhub@163.com
In reply to this post by JasonLee
hi
1.确定提交的是Per-job模式,提交命令是./bin/flink run -m yarn-cluster xxx,并且从Flink web ui中的Job Manager -> Configuration观察到execution.target值为yarn-per-job
2.整体任务状态为Failed,但是TM挂了,JM没有挂(没有挂的原因猜测是因为Yarn application还在Running的原因吧?所以还能从Job Manager -> logs查看失败日志内容)

best,
amenhub



 
发件人: JasonLee
发送时间: 2020-11-13 11:22
收件人: user-zh
主题: Re: Flink与Yarn的状态一致性问题
hi
1,首先确定你提交的是per-job模式吗?
2,你说的任务状态是说jm还在任务在failover,还是任务确实是挂了,jm已经退出了?
 
 
 
 
-----
Best Wishes
JasonLee
--
Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: Flink与Yarn的状态一致性问题

tison
In reply to this post by JasonLee
detached 是另一个坑,因为你 attached 的时候需要等 client 去 request status 才会触发状态变化,但是普通的
execute 应该也是会自动的去拉结果的。

可以看下下列关键日志的打印情况

- log.info("Job {} reached globally terminal state {}.", ...)
- LOG.debug("Shutting down cluster because someone retrieved the job
result.");
- LOG.info("Shutting {} down with application status {}. Diagnostics {}.",
...)

Best,
tison.


JasonLee <[hidden email]> 于2020年11月13日周五 上午11:22写道:

> hi
> 1,首先确定你提交的是per-job模式吗?
> 2,你说的任务状态是说jm还在任务在failover,还是任务确实是挂了,jm已经退出了?
>
>
>
>
> -----
> Best Wishes
> JasonLee
> --
> Sent from: http://apache-flink.147419.n8.nabble.com/
>
Reply | Threaded
Open this post in threaded view
|

Re: Re: Flink与Yarn的状态一致性问题

JasonLee
In reply to this post by amenhub@163.com
hi

从你的描述看确实起的是per-job模式,per-job模式目前应该是没有这个问题的.可以再看下你的UI上execution.attached
的值是什么吗? 再有启动任务的时候是否加了 -d 参数



-----
Best Wishes
JasonLee
--
Sent from: http://apache-flink.147419.n8.nabble.com/
Best Wishes
JasonLee
Reply | Threaded
Open this post in threaded view
|

Re: Re: Flink与Yarn的状态一致性问题

amenhub@163.com
In reply to this post by amenhub@163.com
不知道为什么我现在发往社区的邮件,老是会提示这种东西,原来社区都没有收到我的邮件。。。。

newxmmxszc44.qq.com rejected your message to the following email addresses:
[hidden email]
Your message couldn't be delivered because the recipient's email system wasn't able to confirm that your message came from a trusted location.
For Email Administrators
This error is related to the Sender Policy Framework (SPF). The destination email system's evaluation of the SPF record for the message resulted in an error. Please work with your domain registrar to ensure your SPF records are correctly configured.


再回到问题上来吧,我启动的时候是没有加-d参数的,启动之后execution.attached的值是true,execution.target值是yarn-per-job

best,
amenhub



 
发件人: [hidden email]
发送时间: 2020-11-13 11:30
收件人: user-zh
主题: Re: Re: Flink与Yarn的状态一致性问题
hi
1.确定提交的是Per-job模式,提交命令是./bin/flink run -m yarn-cluster xxx,并且从Flink web ui中的Job Manager -> Configuration观察到execution.target值为yarn-per-job
2.整体任务状态为Failed,但是TM挂了,JM没有挂(没有挂的原因猜测是因为Yarn application还在Running的原因吧?所以还能从Job Manager -> logs查看失败日志内容)
 
best,
amenhub
 
 
 
发件人: JasonLee
发送时间: 2020-11-13 11:22
收件人: user-zh
主题: Re: Flink与Yarn的状态一致性问题
hi
1,首先确定你提交的是per-job模式吗?
2,你说的任务状态是说jm还在任务在failover,还是任务确实是挂了,jm已经退出了?
-----
Best Wishes
JasonLee
--
Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: Re: Flink与Yarn的状态一致性问题

amenhub@163.com
不知道为什么我现在发往社区的邮件,老是会提示这种东西,原来社区都没有收到我的邮件。。。。

newxmmxszc44.qq.com rejected your message to the following email addresses:
[hidden email]
Your message couldn't be delivered because the recipient's email system wasn't able to confirm that your message came from a trusted location.
For Email Administrators
This error is related to the Sender Policy Framework (SPF). The destination email system's evaluation of the SPF record for the message resulted in an error. Please work with your domain registrar to ensure your SPF records are correctly configured.


再回到问题上来吧,我启动的时候是没有加-d参数的,启动之后execution.attached的值是true,execution.target值是yarn-per-job

best,
amenhub



 
发件人: [hidden email]
发送时间: 2020-11-13 11:30
收件人: user-zh
主题: Re: Re: Flink与Yarn的状态一致性问题
hi
1.确定提交的是Per-job模式,提交命令是./bin/flink run -m yarn-cluster xxx,并且从Flink web ui中的Job Manager -> Configuration观察到execution.target值为yarn-per-job
2.整体任务状态为Failed,但是TM挂了,JM没有挂(没有挂的原因猜测是因为Yarn application还在Running的原因吧?所以还能从Job Manager -> logs查看失败日志内容)
 
best,
amenhub
 
 
 
发件人: JasonLee
发送时间: 2020-11-13 11:22
收件人: user-zh
主题: Re: Flink与Yarn的状态一致性问题
hi
1,首先确定你提交的是per-job模式吗?
2,你说的任务状态是说jm还在任务在failover,还是任务确实是挂了,jm已经退出了?
-----
Best Wishes
JasonLee
--
Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: Re: Flink与Yarn的状态一致性问题

JasonLee
In reply to this post by amenhub@163.com
hi

把 -d 参加加上用分离方式启动 应该就可以了



-----
Best Wishes
JasonLee
--
Sent from: http://apache-flink.147419.n8.nabble.com/
Best Wishes
JasonLee