Hi weilong, As vino said, the main advantage of per job mode is that it provides job-level isolation, and that of session mode is that it set up a persistent session and accept job, which means the overhead of resource request/setup would loose. In addition, per job mode calculate resource that the job required, while session mode require you config a static config of that persistent session.
As an advice by experience, prefer per job mode for large jobs, and session mode for a serious of small jobs. Best, tison. vino yang <yanghua1...@gmail.com> 于2018年9月20日周四 下午2:17写道: > Hi weilong, > > As you said, there are advantages and disadvantages to each of the two > approaches. > However, I hope you know that the "single job" mode has a huge advantage > over the "YARN flink session" mode in that it provides job-level isolation > (whether JM or TM). > This will allow the Job to be more fine-grained, and the refactoring of > Flink's FLIP-6-based deployment model tends to be "single job" mode. > But it will start more JM (appmaster) and take up more resources. > But in the end, how to choose also requires you to evaluate and weigh. > > Thanks, vino. > > weilongxing <weilongx...@aicaigroup.com> 于2018年9月20日周四 上午10:27写道: > >> There are two methods to deploy flink applications on yarn. The first one >> is use yarn-session and all flink applications are deployed in the session. >> The second method is each flink application deploy on yarn as a yarn >> application. >> >> My question is what's the difference between these two methods? Which one >> to choose in product environment? >> >> I can't find any material about this. >> >> I think the first method will save resources since only need one >> jobmanager(yarn application master). While it is also the disadvantage >> since the only jobmanager can be the bottleneck while flink applications >> getting more and more. >> >