flink on yarn模式的代码运行位置问题

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

flink on yarn模式的代码运行位置问题

zjfplayer@hotmail.com
Hi,
    我在使用flink的过程中,有些疑问请教下各位:
    1.flink分为jobmanger和taskmanager,我怎么区分哪些代码是运行在jobmanager,哪些在taskmanager?
    2.假设我jarA中使用AbstractYarnClusterDescriptor.deployJobCluster()替代flink run命令(想直接通过jar包启动方式直接提交flink任务上yarn),部署jarB到yarn上,jarB中mainClass中使用StreamExecutionEnvironment.execute去执行流任务,通过java -cp jarA的方式来启动,首先能确定的一点是jarA运行在服务器本地端,jarB中mainClass是否已经运行在yarn上了?还是运行在服务器端?
     服务器端指的是java -cp执行的服务器
     我这边本身从日志打印和远程debug(java -cp中加remote debug参数和flink-conf.yaml中加入remote debug配置)来看,jarB中的mainClass还未运行在yarn上,这个是什么原因?
   
   


[hidden email]
Reply | Threaded
Open this post in threaded view
|

回复:flink on yarn模式的代码运行位置问题

Yichao Yang
Hi


yarn是用作资源管理调度,你所说的未运行在yarn是没有运行在yarn的服务器上吗?


Best,
Yichao Yang




------------------ 原始邮件 ------------------
发件人:&nbsp;"[hidden email]"<[hidden email]&gt;;
发送时间:&nbsp;2020年6月11日(星期四) 下午2:32
收件人:&nbsp;"user-zh"<[hidden email]&gt;;

主题:&nbsp;flink on yarn模式的代码运行位置问题



Hi,
&nbsp;&nbsp;&nbsp; 我在使用flink的过程中,有些疑问请教下各位:
&nbsp;&nbsp;&nbsp; 1.flink分为jobmanger和taskmanager,我怎么区分哪些代码是运行在jobmanager,哪些在taskmanager?
&nbsp;&nbsp;&nbsp; 2.假设我jarA中使用AbstractYarnClusterDescriptor.deployJobCluster()替代flink run命令(想直接通过jar包启动方式直接提交flink任务上yarn),部署jarB到yarn上,jarB中mainClass中使用StreamExecutionEnvironment.execute去执行流任务,通过java -cp jarA的方式来启动,首先能确定的一点是jarA运行在服务器本地端,jarB中mainClass是否已经运行在yarn上了?还是运行在服务器端?
&nbsp;&nbsp;&nbsp;&nbsp; 服务器端指的是java -cp执行的服务器
&nbsp;&nbsp;&nbsp;&nbsp; 我这边本身从日志打印和远程debug(java -cp中加remote debug参数和flink-conf.yaml中加入remote debug配置)来看,jarB中的mainClass还未运行在yarn上,这个是什么原因?
&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;


[hidden email]
Reply | Threaded
Open this post in threaded view
|

回复: 回复:flink on yarn模式的代码运行位置问题

zjfplayer@hotmail.com
未运行在yarn的容器里面,还在服务器java -cp的进程里面



[hidden email]
 
发件人: Yichao Yang
发送时间: 2020-06-11 15:53
收件人: user-zh
主题: 回复:flink on yarn模式的代码运行位置问题
Hi
 
 
yarn是用作资源管理调度,你所说的未运行在yarn是没有运行在yarn的服务器上吗?
 
 
Best,
Yichao Yang
 
 
 
 
------------------&nbsp;原始邮件&nbsp;------------------
发件人:&nbsp;"[hidden email]"<[hidden email]&gt;;
发送时间:&nbsp;2020年6月11日(星期四) 下午2:32
收件人:&nbsp;"user-zh"<[hidden email]&gt;;
 
主题:&nbsp;flink on yarn模式的代码运行位置问题
 
 
 
Hi,
&nbsp;&nbsp;&nbsp; 我在使用flink的过程中,有些疑问请教下各位:
&nbsp;&nbsp;&nbsp; 1.flink分为jobmanger和taskmanager,我怎么区分哪些代码是运行在jobmanager,哪些在taskmanager?
&nbsp;&nbsp;&nbsp; 2.假设我jarA中使用AbstractYarnClusterDescriptor.deployJobCluster()替代flink run命令(想直接通过jar包启动方式直接提交flink任务上yarn),部署jarB到yarn上,jarB中mainClass中使用StreamExecutionEnvironment.execute去执行流任务,通过java -cp jarA的方式来启动,首先能确定的一点是jarA运行在服务器本地端,jarB中mainClass是否已经运行在yarn上了?还是运行在服务器端?
&nbsp;&nbsp;&nbsp;&nbsp; 服务器端指的是java -cp执行的服务器
&nbsp;&nbsp;&nbsp;&nbsp; 我这边本身从日志打印和远程debug(java -cp中加remote debug参数和flink-conf.yaml中加入remote debug配置)来看,jarB中的mainClass还未运行在yarn上,这个是什么原因?
&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;
 
 
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: 回复:flink on yarn模式的代码运行位置问题

Yang Wang
> 如何区分代码是运行在Client/JobManager/TaskManager里面?

Yarn perjob模式,用户的main方法运行在Client端,编译生成JobGraph会ship到JobManager进行
任务的调度。我理解用户的代码一般是不会在JobManager端运行的,JM会将task调度到TaskManager
上运行。对于Yarn application模式,用户main运行在JobManager生成JobGraph,其他相同。


> jarB中mainClass是否已经运行在yarn上了?还是运行在服务器端?

还是如上所说,取决于你是deployJobCluster还是deployApplicationCluster,在1.11以前只有deployJobCluster,
也就是mainClass是在client端运行(调用deployJobCluster的地方)。这个是预期内的,因为需要生成
JobGraph之后再上传,也是为了解决这个问题引入了Application Mode[1].


[1].
https://cwiki.apache.org/confluence/display/FLINK/FLIP-85+Flink+Application+Mode


Best,
Yang


[hidden email] <[hidden email]> 于2020年6月11日周四 下午3:55写道:

> 未运行在yarn的容器里面,还在服务器java -cp的进程里面
>
>
>
> [hidden email]
>
> 发件人: Yichao Yang
> 发送时间: 2020-06-11 15:53
> 收件人: user-zh
> 主题: 回复:flink on yarn模式的代码运行位置问题
> Hi
>
>
> yarn是用作资源管理调度,你所说的未运行在yarn是没有运行在yarn的服务器上吗?
>
>
> Best,
> Yichao Yang
>
>
>
>
> ------------------&nbsp;原始邮件&nbsp;------------------
> 发件人:&nbsp;"[hidden email]"<[hidden email]&gt;;
> 发送时间:&nbsp;2020年6月11日(星期四) 下午2:32
> 收件人:&nbsp;"user-zh"<[hidden email]&gt;;
>
> 主题:&nbsp;flink on yarn模式的代码运行位置问题
>
>
>
> Hi,
> &nbsp;&nbsp;&nbsp; 我在使用flink的过程中,有些疑问请教下各位:
> &nbsp;&nbsp;&nbsp;
> 1.flink分为jobmanger和taskmanager,我怎么区分哪些代码是运行在jobmanager,哪些在taskmanager?
> &nbsp;&nbsp;&nbsp;
> 2.假设我jarA中使用AbstractYarnClusterDescriptor.deployJobCluster()替代flink
> run命令(想直接通过jar包启动方式直接提交flink任务上yarn),部署jarB到yarn上,jarB中mainClass中使用StreamExecutionEnvironment.execute去执行流任务,通过java
> -cp jarA的方式来启动,首先能确定的一点是jarA运行在服务器本地端,jarB中mainClass是否已经运行在yarn上了?还是运行在服务器端?
> &nbsp;&nbsp;&nbsp;&nbsp; 服务器端指的是java -cp执行的服务器
> &nbsp;&nbsp;&nbsp;&nbsp; 我这边本身从日志打印和远程debug(java -cp中加remote
> debug参数和flink-conf.yaml中加入remote
> debug配置)来看,jarB中的mainClass还未运行在yarn上,这个是什么原因?
> &nbsp;&nbsp;
> &nbsp;&nbsp;&nbsp;
>
>
> [hidden email]
>