怎么样在Flink中使用java代码提交job到yarn

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

怎么样在Flink中使用java代码提交job到yarn

xiao cai
Hi all:
大家好,我目前遇到一个flink 任务提交方面的困扰:
想要在自己的项目中(springboot)提交flink job到yarn上。目前采用的方式是process类在本地起进程,调用bin/flink来启动。这样不是很优雅,而且比较难获取到提交的jobId和containerId。看到网上有博客使用ClusterClient的方式来提交,但是遇到了classpath的问题,会缺失一些FLINK_HOME/lib下的jar包
所以我想问,应该如何在自己的应用中提交任务到yarn,既能拿到任务信息,又可以解决classpath为指定带来的困扰。
非常感谢


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

Re: 怎么样在Flink中使用java代码提交job到yarn

zilong xiao
Java程序用process调用脚本提交任务没啥问题吧,获取jobId&containerId的问题,我理解可以用yarn rest api &
flink rest api来完成,希望对你有帮助,祝好~

xiao cai <[hidden email]> 于2020年9月25日周五 下午4:23写道:

> Hi all:
> 大家好,我目前遇到一个flink 任务提交方面的困扰:
> 想要在自己的项目中(springboot)提交flink
> job到yarn上。目前采用的方式是process类在本地起进程,调用bin/flink来启动。这样不是很优雅,而且比较难获取到提交的jobId和containerId。看到网上有博客使用ClusterClient的方式来提交,但是遇到了classpath的问题,会缺失一些FLINK_HOME/lib下的jar包
> 所以我想问,应该如何在自己的应用中提交任务到yarn,既能拿到任务信息,又可以解决classpath为指定带来的困扰。
> 非常感谢
>
>
> best,
> xiao
Reply | Threaded
Open this post in threaded view
|

Re: 怎么样在Flink中使用java代码提交job到yarn

xushanshan
In reply to this post by xiao cai
可以捕获控制台打印出来的日志,flink相关日志的格式很固定,字符串截取就能获得 yarn application id 和 flink job id

> 在 2020年9月25日,下午4:23,xiao cai <[hidden email]> 写道:
>
> Hi all:
> 大家好,我目前遇到一个flink 任务提交方面的困扰:
> 想要在自己的项目中(springboot)提交flink job到yarn上。目前采用的方式是process类在本地起进程,调用bin/flink来启动。这样不是很优雅,而且比较难获取到提交的jobId和containerId。看到网上有博客使用ClusterClient的方式来提交,但是遇到了classpath的问题,会缺失一些FLINK_HOME/lib下的jar包
> 所以我想问,应该如何在自己的应用中提交任务到yarn,既能拿到任务信息,又可以解决classpath为指定带来的困扰。
> 非常感谢
>
>
> best,
> xiao

Reply | Threaded
Open this post in threaded view
|

Re: 怎么样在Flink中使用java代码提交job到yarn

xiao cai
In reply to this post by xiao cai
使用process没办法拿到当前提交任务的JobId和提交到Yarn上的对应的containerId,自能从标准输出中使用正则解析出来。我们目前使用的就是这种方式,已经实现了。但是这样很不优雅,而且提交的速度也会比较慢。


 原始邮件
发件人: zilong xiao<[hidden email]>
收件人: user-zh<[hidden email]>
发送时间: 2020年9月25日(周五) 16:32
主题: Re: 怎么样在Flink中使用java代码提交job到yarn


Java程序用process调用脚本提交任务没啥问题吧,获取jobId&containerId的问题,我理解可以用yarn rest api & flink rest api来完成,希望对你有帮助,祝好~ xiao cai <[hidden email]> 于2020年9月25日周五 下午4:23写道: > Hi all: > 大家好,我目前遇到一个flink 任务提交方面的困扰: > 想要在自己的项目中(springboot)提交flink > job到yarn上。目前采用的方式是process类在本地起进程,调用bin/flink来启动。这样不是很优雅,而且比较难获取到提交的jobId和containerId。看到网上有博客使用ClusterClient的方式来提交,但是遇到了classpath的问题,会缺失一些FLINK_HOME/lib下的jar包 > 所以我想问,应该如何在自己的应用中提交任务到yarn,既能拿到任务信息,又可以解决classpath为指定带来的困扰。 > 非常感谢 > > > best, > xiao
Reply | Threaded
Open this post in threaded view
|

Re: 怎么样在Flink中使用java代码提交job到yarn

zilong xiao
JobId是说Flink的JobId还是yarn上面的application ID呢?containerID可以通过yarn rest api拿到呀

xiao cai <[hidden email]> 于2020年9月25日周五 下午4:43写道:

>
> 使用process没办法拿到当前提交任务的JobId和提交到Yarn上的对应的containerId,自能从标准输出中使用正则解析出来。我们目前使用的就是这种方式,已经实现了。但是这样很不优雅,而且提交的速度也会比较慢。
>
>
>  原始邮件
> 发件人: zilong xiao<[hidden email]>
> 收件人: user-zh<[hidden email]>
> 发送时间: 2020年9月25日(周五) 16:32
> 主题: Re: 怎么样在Flink中使用java代码提交job到yarn
>
>
> Java程序用process调用脚本提交任务没啥问题吧,获取jobId&containerId的问题,我理解可以用yarn rest api &
> flink rest api来完成,希望对你有帮助,祝好~ xiao cai <[hidden email]> 于2020年9月25日周五
> 下午4:23写道: > Hi all: > 大家好,我目前遇到一个flink 任务提交方面的困扰: >
> 想要在自己的项目中(springboot)提交flink >
> job到yarn上。目前采用的方式是process类在本地起进程,调用bin/flink来启动。这样不是很优雅,而且比较难获取到提交的jobId和containerId。看到网上有博客使用ClusterClient的方式来提交,但是遇到了classpath的问题,会缺失一些FLINK_HOME/lib下的jar包
> > 所以我想问,应该如何在自己的应用中提交任务到yarn,既能拿到任务信息,又可以解决classpath为指定带来的困扰。 > 非常感谢 > > >
> best, > xiao
Reply | Threaded
Open this post in threaded view
|

Re: 怎么样在Flink中使用java代码提交job到yarn

xiao cai
In reply to this post by xiao cai
hi zilong:
你说的这些信息我目前都能拿到,已经实现了。只是实现的方式很不优雅,而且提交的速度很慢。


 原始邮件
发件人: zilong xiao<[hidden email]>
收件人: user-zh<[hidden email]>
发送时间: 2020年9月25日(周五) 16:48
主题: Re: 怎么样在Flink中使用java代码提交job到yarn


JobId是说Flink的JobId还是yarn上面的application ID呢?containerID可以通过yarn rest api拿到呀 xiao cai <[hidden email]> 于2020年9月25日周五 下午4:43写道: > > 使用process没办法拿到当前提交任务的JobId和提交到Yarn上的对应的containerId,自能从标准输出中使用正则解析出来。我们目前使用的就是这种方式,已经实现了。但是这样很不优雅,而且提交的速度也会比较慢。 > > > 原始邮件 > 发件人: zilong xiao<[hidden email]> > 收件人: user-zh<[hidden email]> > 发送时间: 2020年9月25日(周五) 16:32 > 主题: Re: 怎么样在Flink中使用java代码提交job到yarn > > > Java程序用process调用脚本提交任务没啥问题吧,获取jobId&containerId的问题,我理解可以用yarn rest api & > flink rest api来完成,希望对你有帮助,祝好~ xiao cai <[hidden email]> 于2020年9月25日周五 > 下午4:23写道: > Hi all: > 大家好,我目前遇到一个flink 任务提交方面的困扰: > > 想要在自己的项目中(springboot)提交flink > > job到yarn上。目前采用的方式是process类在本地起进程,调用bin/flink来启动。这样不是很优雅,而且比较难获取到提交的jobId和containerId。看到网上有博客使用ClusterClient的方式来提交,但是遇到了classpath的问题,会缺失一些FLINK_HOME/lib下的jar包 > > 所以我想问,应该如何在自己的应用中提交任务到yarn,既能拿到任务信息,又可以解决classpath为指定带来的困扰。 > 非常感谢 > > > > best, > xiao
Reply | Threaded
Open this post in threaded view
|

Re: 怎么样在Flink中使用java代码提交job到yarn

zilong xiao
我知道呀,你不是从输出里抠的嘛?你想要更优雅的方式可以用rest api啊,这些信息都是可以拿到的

xiao cai <[hidden email]> 于2020年9月25日周五 下午4:53写道:

> hi zilong:
> 你说的这些信息我目前都能拿到,已经实现了。只是实现的方式很不优雅,而且提交的速度很慢。
>
>
>  原始邮件
> 发件人: zilong xiao<[hidden email]>
> 收件人: user-zh<[hidden email]>
> 发送时间: 2020年9月25日(周五) 16:48
> 主题: Re: 怎么样在Flink中使用java代码提交job到yarn
>
>
> JobId是说Flink的JobId还是yarn上面的application ID呢?containerID可以通过yarn rest api拿到呀
> xiao cai <[hidden email]> 于2020年9月25日周五 下午4:43写道: > >
> 使用process没办法拿到当前提交任务的JobId和提交到Yarn上的对应的containerId,自能从标准输出中使用正则解析出来。我们目前使用的就是这种方式,已经实现了。但是这样很不优雅,而且提交的速度也会比较慢。
> > > > 原始邮件 > 发件人: zilong xiao<[hidden email]> > 收件人: user-zh<
> [hidden email]> > 发送时间: 2020年9月25日(周五) 16:32 > 主题: Re:
> 怎么样在Flink中使用java代码提交job到yarn > > >
> Java程序用process调用脚本提交任务没啥问题吧,获取jobId&containerId的问题,我理解可以用yarn rest api & >
> flink rest api来完成,希望对你有帮助,祝好~ xiao cai <[hidden email]> 于2020年9月25日周五 >
> 下午4:23写道: > Hi all: > 大家好,我目前遇到一个flink 任务提交方面的困扰: > >
> 想要在自己的项目中(springboot)提交flink > >
> job到yarn上。目前采用的方式是process类在本地起进程,调用bin/flink来启动。这样不是很优雅,而且比较难获取到提交的jobId和containerId。看到网上有博客使用ClusterClient的方式来提交,但是遇到了classpath的问题,会缺失一些FLINK_HOME/lib下的jar包
> > > 所以我想问,应该如何在自己的应用中提交任务到yarn,既能拿到任务信息,又可以解决classpath为指定带来的困扰。 > 非常感谢 > >
> > > best, > xiao
Reply | Threaded
Open this post in threaded view
|

Re: 怎么样在Flink中使用java代码提交job到yarn

xiao cai
In reply to this post by xiao cai
hi zilong:
通过process提交任务以后,通过rest api,如何知道哪一个是我提交的呢?如果这时有多个请求过来同时都提交了任务,怎么知道rest返回的application应该与哪一次提交对应呢?


 原始邮件
发件人: zilong xiao<[hidden email]>
收件人: user-zh<[hidden email]>
发送时间: 2020年9月25日(周五) 16:55
主题: Re: 怎么样在Flink中使用java代码提交job到yarn


我知道呀,你不是从输出里抠的嘛?你想要更优雅的方式可以用rest api啊,这些信息都是可以拿到的 xiao cai <[hidden email]> 于2020年9月25日周五 下午4:53写道: > hi zilong: > 你说的这些信息我目前都能拿到,已经实现了。只是实现的方式很不优雅,而且提交的速度很慢。 > > > 原始邮件 > 发件人: zilong xiao<[hidden email]> > 收件人: user-zh<[hidden email]> > 发送时间: 2020年9月25日(周五) 16:48 > 主题: Re: 怎么样在Flink中使用java代码提交job到yarn > > > JobId是说Flink的JobId还是yarn上面的application ID呢?containerID可以通过yarn rest api拿到呀 > xiao cai <[hidden email]> 于2020年9月25日周五 下午4:43写道: > > > 使用process没办法拿到当前提交任务的JobId和提交到Yarn上的对应的containerId,自能从标准输出中使用正则解析出来。我们目前使用的就是这种方式,已经实现了。但是这样很不优雅,而且提交的速度也会比较慢。 > > > > 原始邮件 > 发件人: zilong xiao<[hidden email]> > 收件人: user-zh< > [hidden email]> > 发送时间: 2020年9月25日(周五) 16:32 > 主题: Re: > 怎么样在Flink中使用java代码提交job到yarn > > > > Java程序用process调用脚本提交任务没啥问题吧,获取jobId&containerId的问题,我理解可以用yarn rest api & > > flink rest api来完成,希望对你有帮助,祝好~ xiao cai <[hidden email]> 于2020年9月25日周五 > > 下午4:23写道: > Hi all: > 大家好,我目前遇到一个flink 任务提交方面的困扰: > > > 想要在自己的项目中(springboot)提交flink > > > job到yarn上。目前采用的方式是process类在本地起进程,调用bin/flink来启动。这样不是很优雅,而且比较难获取到提交的jobId和containerId。看到网上有博客使用ClusterClient的方式来提交,但是遇到了classpath的问题,会缺失一些FLINK_HOME/lib下的jar包 > > > 所以我想问,应该如何在自己的应用中提交任务到yarn,既能拿到任务信息,又可以解决classpath为指定带来的困扰。 > 非常感谢 > > > > > best, > xiao
Reply | Threaded
Open this post in threaded view
|

Re: 怎么样在Flink中使用java代码提交job到yarn

zilong xiao
你提交的任务是可以指定job name的呀,你的job name和你的业务主键绑定就可以做到唯一了,然后根据这个关系查询即可,没记错-ynm
是指定job name的

xiao cai <[hidden email]> 于2020年9月25日周五 下午5:01写道:

> hi zilong:
> 通过process提交任务以后,通过rest
> api,如何知道哪一个是我提交的呢?如果这时有多个请求过来同时都提交了任务,怎么知道rest返回的application应该与哪一次提交对应呢?
>
>
>  原始邮件
> 发件人: zilong xiao<[hidden email]>
> 收件人: user-zh<[hidden email]>
> 发送时间: 2020年9月25日(周五) 16:55
> 主题: Re: 怎么样在Flink中使用java代码提交job到yarn
>
>
> 我知道呀,你不是从输出里抠的嘛?你想要更优雅的方式可以用rest api啊,这些信息都是可以拿到的 xiao cai <
> [hidden email]> 于2020年9月25日周五 下午4:53写道: > hi zilong: >
> 你说的这些信息我目前都能拿到,已经实现了。只是实现的方式很不优雅,而且提交的速度很慢。 > > > 原始邮件 > 发件人: zilong xiao<
> [hidden email]> > 收件人: user-zh<[hidden email]> > 发送时间:
> 2020年9月25日(周五) 16:48 > 主题: Re: 怎么样在Flink中使用java代码提交job到yarn > > >
> JobId是说Flink的JobId还是yarn上面的application ID呢?containerID可以通过yarn rest api拿到呀
> > xiao cai <[hidden email]> 于2020年9月25日周五 下午4:43写道: > > >
> 使用process没办法拿到当前提交任务的JobId和提交到Yarn上的对应的containerId,自能从标准输出中使用正则解析出来。我们目前使用的就是这种方式,已经实现了。但是这样很不优雅,而且提交的速度也会比较慢。
> > > > > 原始邮件 > 发件人: zilong xiao<[hidden email]> > 收件人: user-zh< >
> [hidden email]> > 发送时间: 2020年9月25日(周五) 16:32 > 主题: Re: >
> 怎么样在Flink中使用java代码提交job到yarn > > > >
> Java程序用process调用脚本提交任务没啥问题吧,获取jobId&containerId的问题,我理解可以用yarn rest api & >
> > flink rest api来完成,希望对你有帮助,祝好~ xiao cai <[hidden email]> 于2020年9月25日周五
> > > 下午4:23写道: > Hi all: > 大家好,我目前遇到一个flink 任务提交方面的困扰: > > >
> 想要在自己的项目中(springboot)提交flink > > >
> job到yarn上。目前采用的方式是process类在本地起进程,调用bin/flink来启动。这样不是很优雅,而且比较难获取到提交的jobId和containerId。看到网上有博客使用ClusterClient的方式来提交,但是遇到了classpath的问题,会缺失一些FLINK_HOME/lib下的jar包
> > > > 所以我想问,应该如何在自己的应用中提交任务到yarn,既能拿到任务信息,又可以解决classpath为指定带来的困扰。 > 非常感谢 >
> > > > > best, > xiao
Reply | Threaded
Open this post in threaded view
|

Re: 怎么样在Flink中使用java代码提交job到yarn

Jeff Zhang
In reply to this post by xiao cai
如果不是flink jar的job,可以用zeppelin sdk来提交flink job
https://www.yuque.com/jeffzhangjianfeng/gldg8w/pz2xoh


xiao cai <[hidden email]> 于2020年9月25日周五 下午4:23写道:

> Hi all:
> 大家好,我目前遇到一个flink 任务提交方面的困扰:
> 想要在自己的项目中(springboot)提交flink
> job到yarn上。目前采用的方式是process类在本地起进程,调用bin/flink来启动。这样不是很优雅,而且比较难获取到提交的jobId和containerId。看到网上有博客使用ClusterClient的方式来提交,但是遇到了classpath的问题,会缺失一些FLINK_HOME/lib下的jar包
> 所以我想问,应该如何在自己的应用中提交任务到yarn,既能拿到任务信息,又可以解决classpath为指定带来的困扰。
> 非常感谢
>
>
> best,
> xiao



--
Best Regards

Jeff Zhang
Reply | Threaded
Open this post in threaded view
|

Re: 怎么样在Flink中使用java代码提交job到yarn

xiao cai
In reply to this post by xiao cai
Hi zilong:
这种方式我考虑过,个人认为平台层面如果有业务逻辑的侵入,会影响后续的升级。所以我们是在标注输出中正则匹配出jobId和applicationId。你了解YarnClusterDescripto吗?之前社区看到有人用这个提交的。


 原始邮件
发件人: zilong xiao<[hidden email]>
收件人: user-zh<[hidden email]>
发送时间: 2020年9月25日(周五) 17:12
主题: Re: 怎么样在Flink中使用java代码提交job到yarn


你提交的任务是可以指定job name的呀,你的job name和你的业务主键绑定就可以做到唯一了,然后根据这个关系查询即可,没记错-ynm 是指定job name的 xiao cai <[hidden email]> 于2020年9月25日周五 下午5:01写道: > hi zilong: > 通过process提交任务以后,通过rest > api,如何知道哪一个是我提交的呢?如果这时有多个请求过来同时都提交了任务,怎么知道rest返回的application应该与哪一次提交对应呢? > > > 原始邮件 > 发件人: zilong xiao<[hidden email]> > 收件人: user-zh<[hidden email]> > 发送时间: 2020年9月25日(周五) 16:55 > 主题: Re: 怎么样在Flink中使用java代码提交job到yarn > > > 我知道呀,你不是从输出里抠的嘛?你想要更优雅的方式可以用rest api啊,这些信息都是可以拿到的 xiao cai < > [hidden email]> 于2020年9月25日周五 下午4:53写道: > hi zilong: > > 你说的这些信息我目前都能拿到,已经实现了。只是实现的方式很不优雅,而且提交的速度很慢。 > > > 原始邮件 > 发件人: zilong xiao< > [hidden email]> > 收件人: user-zh<[hidden email]> > 发送时间: > 2020年9月25日(周五) 16:48 > 主题: Re: 怎么样在Flink中使用java代码提交job到yarn > > > > JobId是说Flink的JobId还是yarn上面的application ID呢?containerID可以通过yarn rest api拿到呀 > > xiao cai <[hidden email]> 于2020年9月25日周五 下午4:43写道: > > > > 使用process没办法拿到当前提交任务的JobId和提交到Yarn上的对应的containerId,自能从标准输出中使用正则解析出来。我们目前使用的就是这种方式,已经实现了。但是这样很不优雅,而且提交的速度也会比较慢。 > > > > > 原始邮件 > 发件人: zilong xiao<[hidden email]> > 收件人: user-zh< > > [hidden email]> > 发送时间: 2020年9月25日(周五) 16:32 > 主题: Re: > > 怎么样在Flink中使用java代码提交job到yarn > > > > > Java程序用process调用脚本提交任务没啥问题吧,获取jobId&containerId的问题,我理解可以用yarn rest api & > > > flink rest api来完成,希望对你有帮助,祝好~ xiao cai <[hidden email]> 于2020年9月25日周五 > > > 下午4:23写道: > Hi all: > 大家好,我目前遇到一个flink 任务提交方面的困扰: > > > > 想要在自己的项目中(springboot)提交flink > > > > job到yarn上。目前采用的方式是process类在本地起进程,调用bin/flink来启动。这样不是很优雅,而且比较难获取到提交的jobId和containerId。看到网上有博客使用ClusterClient的方式来提交,但是遇到了classpath的问题,会缺失一些FLINK_HOME/lib下的jar包 > > > > 所以我想问,应该如何在自己的应用中提交任务到yarn,既能拿到任务信息,又可以解决classpath为指定带来的困扰。 > 非常感谢 > > > > > > best, > xiao
Reply | Threaded
Open this post in threaded view
|

Re: 怎么样在Flink中使用java代码提交job到yarn

zilong xiao
不太了解 YarnClusterDescripto~

xiao cai <[hidden email]> 于2020年9月25日周五 下午5:28写道:

> Hi zilong:
>
> 这种方式我考虑过,个人认为平台层面如果有业务逻辑的侵入,会影响后续的升级。所以我们是在标注输出中正则匹配出jobId和applicationId。你了解YarnClusterDescripto吗?之前社区看到有人用这个提交的。
>
>
>  原始邮件
> 发件人: zilong xiao<[hidden email]>
> 收件人: user-zh<[hidden email]>
> 发送时间: 2020年9月25日(周五) 17:12
> 主题: Re: 怎么样在Flink中使用java代码提交job到yarn
>
>
> 你提交的任务是可以指定job name的呀,你的job name和你的业务主键绑定就可以做到唯一了,然后根据这个关系查询即可,没记错-ynm
> 是指定job name的 xiao cai <[hidden email]> 于2020年9月25日周五 下午5:01写道: > hi
> zilong: > 通过process提交任务以后,通过rest >
> api,如何知道哪一个是我提交的呢?如果这时有多个请求过来同时都提交了任务,怎么知道rest返回的application应该与哪一次提交对应呢? >
> > > 原始邮件 > 发件人: zilong xiao<[hidden email]> > 收件人: user-zh<
> [hidden email]> > 发送时间: 2020年9月25日(周五) 16:55 > 主题: Re:
> 怎么样在Flink中使用java代码提交job到yarn > > > 我知道呀,你不是从输出里抠的嘛?你想要更优雅的方式可以用rest
> api啊,这些信息都是可以拿到的 xiao cai < > [hidden email]> 于2020年9月25日周五 下午4:53写道: >
> hi zilong: > > 你说的这些信息我目前都能拿到,已经实现了。只是实现的方式很不优雅,而且提交的速度很慢。 > > > 原始邮件 >
> 发件人: zilong xiao< > [hidden email]> > 收件人: user-zh<
> [hidden email]> > 发送时间: > 2020年9月25日(周五) 16:48 > 主题: Re:
> 怎么样在Flink中使用java代码提交job到yarn > > > > JobId是说Flink的JobId还是yarn上面的application
> ID呢?containerID可以通过yarn rest api拿到呀 > > xiao cai <[hidden email]>
> 于2020年9月25日周五 下午4:43写道: > > > >
> 使用process没办法拿到当前提交任务的JobId和提交到Yarn上的对应的containerId,自能从标准输出中使用正则解析出来。我们目前使用的就是这种方式,已经实现了。但是这样很不优雅,而且提交的速度也会比较慢。
> > > > > > 原始邮件 > 发件人: zilong xiao<[hidden email]> > 收件人: user-zh< >
> > [hidden email]> > 发送时间: 2020年9月25日(周五) 16:32 > 主题: Re: > >
> 怎么样在Flink中使用java代码提交job到yarn > > > > >
> Java程序用process调用脚本提交任务没啥问题吧,获取jobId&containerId的问题,我理解可以用yarn rest api & >
> > > flink rest api来完成,希望对你有帮助,祝好~ xiao cai <[hidden email]>
> 于2020年9月25日周五 > > > 下午4:23写道: > Hi all: > 大家好,我目前遇到一个flink 任务提交方面的困扰: > > >
> > 想要在自己的项目中(springboot)提交flink > > > >
> job到yarn上。目前采用的方式是process类在本地起进程,调用bin/flink来启动。这样不是很优雅,而且比较难获取到提交的jobId和containerId。看到网上有博客使用ClusterClient的方式来提交,但是遇到了classpath的问题,会缺失一些FLINK_HOME/lib下的jar包
> > > > > 所以我想问,应该如何在自己的应用中提交任务到yarn,既能拿到任务信息,又可以解决classpath为指定带来的困扰。 > 非常感谢
> > > > > > > best, > xiao
Reply | Threaded
Open this post in threaded view
|

Re: 怎么样在Flink中使用java代码提交job到yarn

Xiao Xu
In reply to this post by xiao cai
直接扣命令行里提交任务的代码,
https://ci.apache.org/projects/flink/flink-docs-stable/ops/cli.html, 这边都是
java 实现的, 转到 spring boot 没啥难度

xiao cai <[hidden email]> 于2020年9月25日周五 下午5:28写道:

> Hi zilong:
>
> 这种方式我考虑过,个人认为平台层面如果有业务逻辑的侵入,会影响后续的升级。所以我们是在标注输出中正则匹配出jobId和applicationId。你了解YarnClusterDescripto吗?之前社区看到有人用这个提交的。
>
>
>  原始邮件
> 发件人: zilong xiao<[hidden email]>
> 收件人: user-zh<[hidden email]>
> 发送时间: 2020年9月25日(周五) 17:12
> 主题: Re: 怎么样在Flink中使用java代码提交job到yarn
>
>
> 你提交的任务是可以指定job name的呀,你的job name和你的业务主键绑定就可以做到唯一了,然后根据这个关系查询即可,没记错-ynm
> 是指定job name的 xiao cai <[hidden email]> 于2020年9月25日周五 下午5:01写道: > hi
> zilong: > 通过process提交任务以后,通过rest >
> api,如何知道哪一个是我提交的呢?如果这时有多个请求过来同时都提交了任务,怎么知道rest返回的application应该与哪一次提交对应呢? >
> > > 原始邮件 > 发件人: zilong xiao<[hidden email]> > 收件人: user-zh<
> [hidden email]> > 发送时间: 2020年9月25日(周五) 16:55 > 主题: Re:
> 怎么样在Flink中使用java代码提交job到yarn > > > 我知道呀,你不是从输出里抠的嘛?你想要更优雅的方式可以用rest
> api啊,这些信息都是可以拿到的 xiao cai < > [hidden email]> 于2020年9月25日周五 下午4:53写道: >
> hi zilong: > > 你说的这些信息我目前都能拿到,已经实现了。只是实现的方式很不优雅,而且提交的速度很慢。 > > > 原始邮件 >
> 发件人: zilong xiao< > [hidden email]> > 收件人: user-zh<
> [hidden email]> > 发送时间: > 2020年9月25日(周五) 16:48 > 主题: Re:
> 怎么样在Flink中使用java代码提交job到yarn > > > > JobId是说Flink的JobId还是yarn上面的application
> ID呢?containerID可以通过yarn rest api拿到呀 > > xiao cai <[hidden email]>
> 于2020年9月25日周五 下午4:43写道: > > > >
> 使用process没办法拿到当前提交任务的JobId和提交到Yarn上的对应的containerId,自能从标准输出中使用正则解析出来。我们目前使用的就是这种方式,已经实现了。但是这样很不优雅,而且提交的速度也会比较慢。
> > > > > > 原始邮件 > 发件人: zilong xiao<[hidden email]> > 收件人: user-zh< >
> > [hidden email]> > 发送时间: 2020年9月25日(周五) 16:32 > 主题: Re: > >
> 怎么样在Flink中使用java代码提交job到yarn > > > > >
> Java程序用process调用脚本提交任务没啥问题吧,获取jobId&containerId的问题,我理解可以用yarn rest api & >
> > > flink rest api来完成,希望对你有帮助,祝好~ xiao cai <[hidden email]>
> 于2020年9月25日周五 > > > 下午4:23写道: > Hi all: > 大家好,我目前遇到一个flink 任务提交方面的困扰: > > >
> > 想要在自己的项目中(springboot)提交flink > > > >
> job到yarn上。目前采用的方式是process类在本地起进程,调用bin/flink来启动。这样不是很优雅,而且比较难获取到提交的jobId和containerId。看到网上有博客使用ClusterClient的方式来提交,但是遇到了classpath的问题,会缺失一些FLINK_HOME/lib下的jar包
> > > > > 所以我想问,应该如何在自己的应用中提交任务到yarn,既能拿到任务信息,又可以解决classpath为指定带来的困扰。 > 非常感谢
> > > > > > > best, > xiao
Reply | Threaded
Open this post in threaded view
|

回复: Re: 怎么样在Flink中使用java代码提交job到yarn

Evan
In reply to this post by xushanshan
我们项目中也是用到了这个,我也是暂时采用的捕获日志来解析得到yarn application id 和 flink job id的
后期重点研究一下zeeplin,或许可以修改一下源码来镶嵌到我们自己的系统中或者直接调用zeeplin的api



 
发件人: xushanshan
发送时间: 2020-09-25 16:42
收件人: user-zh
主题: Re: 怎么样在Flink中使用java代码提交job到yarn
可以捕获控制台打印出来的日志,flink相关日志的格式很固定,字符串截取就能获得 yarn application id 和 flink job id
 

> 在 2020年9月25日,下午4:23,xiao cai <[hidden email]> 写道:
>
> Hi all:
> 大家好,我目前遇到一个flink 任务提交方面的困扰:
> 想要在自己的项目中(springboot)提交flink job到yarn上。目前采用的方式是process类在本地起进程,调用bin/flink来启动。这样不是很优雅,而且比较难获取到提交的jobId和containerId。看到网上有博客使用ClusterClient的方式来提交,但是遇到了classpath的问题,会缺失一些FLINK_HOME/lib下的jar包
> 所以我想问,应该如何在自己的应用中提交任务到yarn,既能拿到任务信息,又可以解决classpath为指定带来的困扰。
> 非常感谢
>
>
> best,
> xiao
 
Reply | Threaded
Open this post in threaded view
|

Re: 怎么样在Flink中使用java代码提交job到yarn

todd
In reply to this post by xiao cai
https://github.com/todd5167/flink-spark-submiter   可以参考这个案例,用ClusterCLient提交。



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

Re: 怎么样在Flink中使用java代码提交job到yarn

xiao cai
In reply to this post by xiao cai
这个我们有尝试,遇到了classpath的问题,导致包冲突,无法启动进程,你们有遇到过相关的情况吗?


 原始邮件
发件人: todd<[hidden email]>
收件人: user-zh<[hidden email]>
发送时间: 2020年9月29日(周二) 17:36
主题: Re: 怎么样在Flink中使用java代码提交job到yarn


https://github.com/todd5167/flink-spark-submiter 可以参考这个案例,用ClusterCLient提交。 -- Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: 怎么样在Flink中使用java代码提交job到yarn

Dream-底限
可以直接用yarnclient直接提交,flinkonyarn也是yarnclient提交的吧,不过感觉自己实现一遍挺麻烦的,我们最后也选的是process的方式

xiao cai <[hidden email]> 于2020年9月29日周二 下午5:54写道:

> 这个我们有尝试,遇到了classpath的问题,导致包冲突,无法启动进程,你们有遇到过相关的情况吗?
>
>
>  原始邮件
> 发件人: todd<[hidden email]>
> 收件人: user-zh<[hidden email]>
> 发送时间: 2020年9月29日(周二) 17:36
> 主题: Re: 怎么样在Flink中使用java代码提交job到yarn
>
>
> https://github.com/todd5167/flink-spark-submiter
> 可以参考这个案例,用ClusterCLient提交。 -- Sent from:
> http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: 怎么样在Flink中使用java代码提交job到yarn

todd
In reply to this post by xiao cai
是不是和你上层依赖的jar冲突了?exclude剔除不了冲突jar吗



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