Hi Peter,

I understand your point. This is why I was also a bit torn about the
name and my proposal was a bit aligned with yours (something along the
lines of "cluster deploy" mode).

But many of the other participants in the discussion suggested the
"Application Mode". I think that the reasoning is that now the user's
Application is more self-contained.
It will be submitted to the cluster and the user can just disconnect.
In addition, as discussed briefly in the doc, in the future there may
be better support for multi-execute applications which will bring us
one step closer to the true "Application Mode". But this is how I
interpreted their arguments, of course they can also express their
thoughts on the topic :)

Cheers,
Kostas

On Mon, Mar 2, 2020 at 6:15 PM Peter Huang <huangzhenqiu0...@gmail.com> wrote:
>
> Hi Kostas,
>
> Thanks for updating the wiki. We have aligned with the implementations in the 
> doc. But I feel it is still a little bit confusing of the naming from a 
> user's perspective. It is well known that Flink support per job cluster and 
> session cluster. The concept is in the layer of how a job is managed within 
> Flink. The method introduced util now is a kind of mixing job and session 
> cluster to promising the implementation complexity. We probably don't need to 
> label it as Application Model as the same layer of per job cluster and 
> session cluster. Conceptually, I think it is still a cluster mode 
> implementation for per job cluster.
>
> To minimize the confusion of users, I think it would be better just an option 
> of per job cluster for each type of cluster manager. How do you think?
>
>
> Best Regards
> Peter Huang
>
>
>
>
>
>
>
>
> On Mon, Mar 2, 2020 at 7:22 AM Kostas Kloudas <kklou...@gmail.com> wrote:
>>
>> Hi Yang,
>>
>> The difference between per-job and application mode is that, as you
>> described, in the per-job mode the main is executed on the client
>> while in the application mode, the main is executed on the cluster.
>> I do not think we have to offer "application mode" with running the
>> main on the client side as this is exactly what the per-job mode does
>> currently and, as you described also, it would be redundant.
>>
>> Sorry if this was not clear in the document.
>>
>> Cheers,
>> Kostas
>>
>> On Mon, Mar 2, 2020 at 3:17 PM Yang Wang <danrtsey...@gmail.com> wrote:
>> >
>> > Hi Kostas,
>> >
>> > Thanks a lot for your conclusion and updating the FLIP-85 WIKI. Currently, 
>> > i have no more
>> > questions about motivation, approach, fault tolerance and the first phase 
>> > implementation.
>> >
>> > I think the new title "Flink Application Mode" makes a lot senses to me. 
>> > Especially for the
>> > containerized environment, the cluster deploy option will be very useful.
>> >
>> > Just one concern, how do we introduce this new application mode to our 
>> > users?
>> > Each user program(i.e. `main()`) is an application. Currently, we intend 
>> > to only support one
>> > `execute()`. So what's the difference between per-job and application mode?
>> >
>> > For per-job, user `main()` is always executed on client side. And For 
>> > application mode, user
>> > `main()` could be executed on client or master side(configured via cli 
>> > option).
>> > Right? We need to have a clear concept. Otherwise, the users will be more 
>> > and more confusing.
>> >
>> >
>> > Best,
>> > Yang
>> >
>> > Kostas Kloudas <kklou...@gmail.com> 于2020年3月2日周一 下午5:58写道:
>> >>
>> >> Hi all,
>> >>
>> >> I update 
>> >> https://cwiki.apache.org/confluence/display/FLINK/FLIP-85+Flink+Application+Mode
>> >> based on the discussion we had here:
>> >>
>> >> https://docs.google.com/document/d/1ji72s3FD9DYUyGuKnJoO4ApzV-nSsZa0-bceGXW7Ocw/edit#
>> >>
>> >> Please let me know what you think and please keep the discussion in the 
>> >> ML :)
>> >>
>> >> Thanks for starting the discussion and I hope that soon we will be
>> >> able to vote on the FLIP.
>> >>
>> >> Cheers,
>> >> Kostas
>> >>
>> >> On Thu, Jan 16, 2020 at 3:40 AM Yang Wang <danrtsey...@gmail.com> wrote:
>> >> >
>> >> > Hi all,
>> >> >
>> >> > Thanks a lot for the feedback from @Kostas Kloudas. Your all concerns 
>> >> > are
>> >> > on point. The FLIP-85 is mainly
>> >> > focused on supporting cluster mode for per-job. Since it is more urgent 
>> >> > and
>> >> > have much more use
>> >> > cases both in Yarn and Kubernetes deployment. For session cluster, we 
>> >> > could
>> >> > have more discussion
>> >> > in a new thread later.
>> >> >
>> >> > #1, How to download the user jars and dependencies for per-job in 
>> >> > cluster
>> >> > mode?
>> >> > For Yarn, we could register the user jars and dependencies as
>> >> > LocalResource. They will be distributed
>> >> > by Yarn. And once the JobManager and TaskManager launched, the jars are
>> >> > already exists.
>> >> > For Standalone per-job and K8s, we expect that the user jars
>> >> > and dependencies are built into the image.
>> >> > Or the InitContainer could be used for downloading. It is natively
>> >> > distributed and we will not have bottleneck.
>> >> >
>> >> > #2, Job graph recovery
>> >> > We could have an optimization to store job graph on the DFS. However, i
>> >> > suggest building a new jobgraph
>> >> > from the configuration is the default option. Since we will not always 
>> >> > have
>> >> > a DFS store when deploying a
>> >> > Flink per-job cluster. Of course, we assume that using the same
>> >> > configuration(e.g. job_id, user_jar, main_class,
>> >> > main_args, parallelism, savepoint_settings, etc.) will get a same job
>> >> > graph. I think the standalone per-job
>> >> > already has the similar behavior.
>> >> >
>> >> > #3, What happens with jobs that have multiple execute calls?
>> >> > Currently, it is really a problem. Even we use a local client on Flink
>> >> > master side, it will have different behavior with
>> >> > client mode. For client mode, if we execute multiple times, then we will
>> >> > deploy multiple Flink clusters for each execute.
>> >> > I am not pretty sure whether it is reasonable. However, i still think 
>> >> > using
>> >> > the local client is a good choice. We could
>> >> > continue the discussion in a new thread. @Zili Chen 
>> >> > <wander4...@gmail.com> Do
>> >> > you want to drive this?
>> >> >
>> >> >
>> >> >
>> >> > Best,
>> >> > Yang
>> >> >
>> >> > Peter Huang <huangzhenqiu0...@gmail.com> 于2020年1月16日周四 上午1:55写道:
>> >> >
>> >> > > Hi Kostas,
>> >> > >
>> >> > > Thanks for this feedback. I can't agree more about the opinion. The
>> >> > > cluster mode should be added
>> >> > > first in per job cluster.
>> >> > >
>> >> > > 1) For job cluster implementation
>> >> > > 1. Job graph recovery from configuration or store as static job graph 
>> >> > > as
>> >> > > session cluster. I think the static one will be better for less 
>> >> > > recovery
>> >> > > time.
>> >> > > Let me update the doc for details.
>> >> > >
>> >> > > 2. For job execute multiple times, I think @Zili Chen
>> >> > > <wander4...@gmail.com> has proposed the local client solution that can
>> >> > > the run program actually in the cluster entry point. We can put the
>> >> > > implementation in the second stage,
>> >> > > or even a new FLIP for further discussion.
>> >> > >
>> >> > > 2) For session cluster implementation
>> >> > > We can disable the cluster mode for the session cluster in the first
>> >> > > stage. I agree the jar downloading will be a painful thing.
>> >> > > We can consider about PoC and performance evaluation first. If the 
>> >> > > end to
>> >> > > end experience is good enough, then we can consider
>> >> > > proceeding with the solution.
>> >> > >
>> >> > > Looking forward to more opinions from @Yang Wang 
>> >> > > <danrtsey...@gmail.com> @Zili
>> >> > > Chen <wander4...@gmail.com> @Dian Fu <dian0511...@gmail.com>.
>> >> > >
>> >> > >
>> >> > > Best Regards
>> >> > > Peter Huang
>> >> > >
>> >> > > On Wed, Jan 15, 2020 at 7:50 AM Kostas Kloudas <kklou...@gmail.com> 
>> >> > > wrote:
>> >> > >
>> >> > >> Hi all,
>> >> > >>
>> >> > >> I am writing here as the discussion on the Google Doc seems to be a
>> >> > >> bit difficult to follow.
>> >> > >>
>> >> > >> I think that in order to be able to make progress, it would be 
>> >> > >> helpful
>> >> > >> to focus on per-job mode for now.
>> >> > >> The reason is that:
>> >> > >>  1) making the (unique) JobSubmitHandler responsible for creating the
>> >> > >> jobgraphs,
>> >> > >>   which includes downloading dependencies, is not an optimal solution
>> >> > >>  2) even if we put the responsibility on the JobMaster, currently 
>> >> > >> each
>> >> > >> job has its own
>> >> > >>   JobMaster but they all run on the same process, so we have again a
>> >> > >> single entity.
>> >> > >>
>> >> > >> Of course after this is done, and if we feel comfortable with the
>> >> > >> solution, then we can go to the session mode.
>> >> > >>
>> >> > >> A second comment has to do with fault-tolerance in the per-job,
>> >> > >> cluster-deploy mode.
>> >> > >> In the document, it is suggested that upon recovery, the JobMaster of
>> >> > >> each job re-creates the JobGraph.
>> >> > >> I am just wondering if it is better to create and store the jobGraph
>> >> > >> upon submission and only fetch it
>> >> > >> upon recovery so that we have a static jobGraph.
>> >> > >>
>> >> > >> Finally, I have a question which is what happens with jobs that have
>> >> > >> multiple execute calls?
>> >> > >> The semantics seem to change compared to the current behaviour, 
>> >> > >> right?
>> >> > >>
>> >> > >> Cheers,
>> >> > >> Kostas
>> >> > >>
>> >> > >> On Wed, Jan 8, 2020 at 8:05 PM tison <wander4...@gmail.com> wrote:
>> >> > >> >
>> >> > >> > not always, Yang Wang is also not yet a committer but he can join 
>> >> > >> > the
>> >> > >> > channel. I cannot find the id by clicking “Add new member in 
>> >> > >> > channel” so
>> >> > >> > come to you and ask for try out the link. Possibly I will find 
>> >> > >> > other
>> >> > >> ways
>> >> > >> > but the original purpose is that the slack channel is a public 
>> >> > >> > area we
>> >> > >> > discuss about developing...
>> >> > >> > Best,
>> >> > >> > tison.
>> >> > >> >
>> >> > >> >
>> >> > >> > Peter Huang <huangzhenqiu0...@gmail.com> 于2020年1月9日周四 上午2:44写道:
>> >> > >> >
>> >> > >> > > Hi Tison,
>> >> > >> > >
>> >> > >> > > I am not the committer of Flink yet. I think I can't join it 
>> >> > >> > > also.
>> >> > >> > >
>> >> > >> > >
>> >> > >> > > Best Regards
>> >> > >> > > Peter Huang
>> >> > >> > >
>> >> > >> > > On Wed, Jan 8, 2020 at 9:39 AM tison <wander4...@gmail.com> 
>> >> > >> > > wrote:
>> >> > >> > >
>> >> > >> > > > Hi Peter,
>> >> > >> > > >
>> >> > >> > > > Could you try out this link?
>> >> > >> > > https://the-asf.slack.com/messages/CNA3ADZPH
>> >> > >> > > >
>> >> > >> > > > Best,
>> >> > >> > > > tison.
>> >> > >> > > >
>> >> > >> > > >
>> >> > >> > > > Peter Huang <huangzhenqiu0...@gmail.com> 于2020年1月9日周四 上午1:22写道:
>> >> > >> > > >
>> >> > >> > > > > Hi Tison,
>> >> > >> > > > >
>> >> > >> > > > > I can't join the group with shared link. Would you please 
>> >> > >> > > > > add me
>> >> > >> into
>> >> > >> > > the
>> >> > >> > > > > group? My slack account is huangzhenqiu0825.
>> >> > >> > > > > Thank you in advance.
>> >> > >> > > > >
>> >> > >> > > > >
>> >> > >> > > > > Best Regards
>> >> > >> > > > > Peter Huang
>> >> > >> > > > >
>> >> > >> > > > > On Wed, Jan 8, 2020 at 12:02 AM tison <wander4...@gmail.com>
>> >> > >> wrote:
>> >> > >> > > > >
>> >> > >> > > > > > Hi Peter,
>> >> > >> > > > > >
>> >> > >> > > > > > As described above, this effort should get attention from 
>> >> > >> > > > > > people
>> >> > >> > > > > developing
>> >> > >> > > > > > FLIP-73 a.k.a. Executor abstractions. I recommend you to 
>> >> > >> > > > > > join
>> >> > >> the
>> >> > >> > > > public
>> >> > >> > > > > > slack channel[1] for Flink Client API Enhancement and you 
>> >> > >> > > > > > can
>> >> > >> try to
>> >> > >> > > > > share
>> >> > >> > > > > > you detailed thoughts there. It possibly gets more concrete
>> >> > >> > > attentions.
>> >> > >> > > > > >
>> >> > >> > > > > > Best,
>> >> > >> > > > > > tison.
>> >> > >> > > > > >
>> >> > >> > > > > > [1]
>> >> > >> > > > > >
>> >> > >> > > > > >
>> >> > >> > > > >
>> >> > >> > > >
>> >> > >> > >
>> >> > >> https://slack.com/share/IS21SJ75H/Rk8HhUly9FuEHb7oGwBZ33uL/enQtODg2MDYwNjE5MTg3LTA2MjIzNDc1M2ZjZDVlMjdlZjk1M2RkYmJhNjAwMTk2ZDZkODQ4NmY5YmI4OGRhNWJkYTViMTM1NzlmMzc4OWM
>> >> > >> > > > > >
>> >> > >> > > > > >
>> >> > >> > > > > > Peter Huang <huangzhenqiu0...@gmail.com> 于2020年1月7日周二 
>> >> > >> > > > > > 上午5:09写道:
>> >> > >> > > > > >
>> >> > >> > > > > > > Dear All,
>> >> > >> > > > > > >
>> >> > >> > > > > > > Happy new year! According to existing feedback from the
>> >> > >> community,
>> >> > >> > > we
>> >> > >> > > > > > > revised the doc with the consideration of session cluster
>> >> > >> support,
>> >> > >> > > > and
>> >> > >> > > > > > > concrete interface changes needed and execution plan. 
>> >> > >> > > > > > > Please
>> >> > >> take
>> >> > >> > > one
>> >> > >> > > > > > more
>> >> > >> > > > > > > round of review at your most convenient time.
>> >> > >> > > > > > >
>> >> > >> > > > > > >
>> >> > >> > > > > > >
>> >> > >> > > > > >
>> >> > >> > > > >
>> >> > >> > > >
>> >> > >> > >
>> >> > >> https://docs.google.com/document/d/1aAwVjdZByA-0CHbgv16Me-vjaaDMCfhX7TzVVTuifYM/edit#
>> >> > >> > > > > > >
>> >> > >> > > > > > >
>> >> > >> > > > > > > Best Regards
>> >> > >> > > > > > > Peter Huang
>> >> > >> > > > > > >
>> >> > >> > > > > > >
>> >> > >> > > > > > >
>> >> > >> > > > > > >
>> >> > >> > > > > > >
>> >> > >> > > > > > > On Thu, Jan 2, 2020 at 11:29 AM Peter Huang <
>> >> > >> > > > > huangzhenqiu0...@gmail.com>
>> >> > >> > > > > > > wrote:
>> >> > >> > > > > > >
>> >> > >> > > > > > > > Hi Dian,
>> >> > >> > > > > > > > Thanks for giving us valuable feedbacks.
>> >> > >> > > > > > > >
>> >> > >> > > > > > > > 1) It's better to have a whole design for this feature
>> >> > >> > > > > > > > For the suggestion of enabling the cluster mode also 
>> >> > >> > > > > > > > session
>> >> > >> > > > > cluster, I
>> >> > >> > > > > > > > think Flink already supported it. 
>> >> > >> > > > > > > > WebSubmissionExtension
>> >> > >> already
>> >> > >> > > > > allows
>> >> > >> > > > > > > > users to start a job with the specified jar by using 
>> >> > >> > > > > > > > web UI.
>> >> > >> > > > > > > > But we need to enable the feature from CLI for both 
>> >> > >> > > > > > > > local
>> >> > >> jar,
>> >> > >> > > > remote
>> >> > >> > > > > > > jar.
>> >> > >> > > > > > > > I will align with Yang Wang first about the details and
>> >> > >> update
>> >> > >> > > the
>> >> > >> > > > > > design
>> >> > >> > > > > > > > doc.
>> >> > >> > > > > > > >
>> >> > >> > > > > > > > 2) It's better to consider the convenience for users, 
>> >> > >> > > > > > > > such
>> >> > >> as
>> >> > >> > > > > debugging
>> >> > >> > > > > > > >
>> >> > >> > > > > > > > I am wondering whether we can store the exception in
>> >> > >> jobgragh
>> >> > >> > > > > > > > generation in application master. As no streaming 
>> >> > >> > > > > > > > graph can
>> >> > >> be
>> >> > >> > > > > > scheduled
>> >> > >> > > > > > > in
>> >> > >> > > > > > > > this case, there will be no more TM will be requested 
>> >> > >> > > > > > > > from
>> >> > >> > > FlinkRM.
>> >> > >> > > > > > > > If the AM is still running, users can still query it 
>> >> > >> > > > > > > > from
>> >> > >> CLI. As
>> >> > >> > > > it
>> >> > >> > > > > > > > requires more change, we can get some feedback from <
>> >> > >> > > > > > aljos...@apache.org
>> >> > >> > > > > > > >
>> >> > >> > > > > > > > and @zjf...@gmail.com <zjf...@gmail.com>.
>> >> > >> > > > > > > >
>> >> > >> > > > > > > > 3) It's better to consider the impact to the stability 
>> >> > >> > > > > > > > of
>> >> > >> the
>> >> > >> > > > cluster
>> >> > >> > > > > > > >
>> >> > >> > > > > > > > I agree with Yang Wang's opinion.
>> >> > >> > > > > > > >
>> >> > >> > > > > > > >
>> >> > >> > > > > > > >
>> >> > >> > > > > > > > Best Regards
>> >> > >> > > > > > > > Peter Huang
>> >> > >> > > > > > > >
>> >> > >> > > > > > > >
>> >> > >> > > > > > > > On Sun, Dec 29, 2019 at 9:44 PM Dian Fu <
>> >> > >> dian0511...@gmail.com>
>> >> > >> > > > > wrote:
>> >> > >> > > > > > > >
>> >> > >> > > > > > > >> Hi all,
>> >> > >> > > > > > > >>
>> >> > >> > > > > > > >> Sorry to jump into this discussion. Thanks everyone 
>> >> > >> > > > > > > >> for the
>> >> > >> > > > > > discussion.
>> >> > >> > > > > > > >> I'm very interested in this topic although I'm not an
>> >> > >> expert in
>> >> > >> > > > this
>> >> > >> > > > > > > part.
>> >> > >> > > > > > > >> So I'm glad to share my thoughts as following:
>> >> > >> > > > > > > >>
>> >> > >> > > > > > > >> 1) It's better to have a whole design for this feature
>> >> > >> > > > > > > >> As we know, there are two deployment modes: per-job 
>> >> > >> > > > > > > >> mode
>> >> > >> and
>> >> > >> > > > session
>> >> > >> > > > > > > >> mode. I'm wondering which mode really needs this 
>> >> > >> > > > > > > >> feature.
>> >> > >> As the
>> >> > >> > > > > > design
>> >> > >> > > > > > > doc
>> >> > >> > > > > > > >> mentioned, per-job mode is more used for streaming 
>> >> > >> > > > > > > >> jobs and
>> >> > >> > > > session
>> >> > >> > > > > > > mode is
>> >> > >> > > > > > > >> usually used for batch jobs(Of course, the job types 
>> >> > >> > > > > > > >> and
>> >> > >> the
>> >> > >> > > > > > deployment
>> >> > >> > > > > > > >> modes are orthogonal). Usually streaming job is only
>> >> > >> needed to
>> >> > >> > > be
>> >> > >> > > > > > > submitted
>> >> > >> > > > > > > >> once and it will run for days or weeks, while batch 
>> >> > >> > > > > > > >> jobs
>> >> > >> will be
>> >> > >> > > > > > > submitted
>> >> > >> > > > > > > >> more frequently compared with streaming jobs. This 
>> >> > >> > > > > > > >> means
>> >> > >> that
>> >> > >> > > > maybe
>> >> > >> > > > > > > session
>> >> > >> > > > > > > >> mode also needs this feature. However, if we support 
>> >> > >> > > > > > > >> this
>> >> > >> > > feature
>> >> > >> > > > in
>> >> > >> > > > > > > >> session mode, the application master will become the 
>> >> > >> > > > > > > >> new
>> >> > >> > > > centralized
>> >> > >> > > > > > > >> service(which should be solved). So in this case, it's
>> >> > >> better to
>> >> > >> > > > > have
>> >> > >> > > > > > a
>> >> > >> > > > > > > >> complete design for both per-job mode and session 
>> >> > >> > > > > > > >> mode.
>> >> > >> > > > Furthermore,
>> >> > >> > > > > > > even
>> >> > >> > > > > > > >> if we can do it phase by phase, we need to have a 
>> >> > >> > > > > > > >> whole
>> >> > >> picture
>> >> > >> > > of
>> >> > >> > > > > how
>> >> > >> > > > > > > it
>> >> > >> > > > > > > >> works in both per-job mode and session mode.
>> >> > >> > > > > > > >>
>> >> > >> > > > > > > >> 2) It's better to consider the convenience for users, 
>> >> > >> > > > > > > >> such
>> >> > >> as
>> >> > >> > > > > > debugging
>> >> > >> > > > > > > >> After we finish this feature, the job graph will be
>> >> > >> compiled in
>> >> > >> > > > the
>> >> > >> > > > > > > >> application master, which means that users cannot 
>> >> > >> > > > > > > >> easily
>> >> > >> get the
>> >> > >> > > > > > > exception
>> >> > >> > > > > > > >> message synchorousely in the job client if there are
>> >> > >> problems
>> >> > >> > > > during
>> >> > >> > > > > > the
>> >> > >> > > > > > > >> job graph compiling (especially for platform users), 
>> >> > >> > > > > > > >> such
>> >> > >> as the
>> >> > >> > > > > > > resource
>> >> > >> > > > > > > >> path is incorrect, the user program itself has some
>> >> > >> problems,
>> >> > >> > > etc.
>> >> > >> > > > > > What
>> >> > >> > > > > > > I'm
>> >> > >> > > > > > > >> thinking is that maybe we should throw the exceptions 
>> >> > >> > > > > > > >> as
>> >> > >> early
>> >> > >> > > as
>> >> > >> > > > > > > possible
>> >> > >> > > > > > > >> (during job submission stage).
>> >> > >> > > > > > > >>
>> >> > >> > > > > > > >> 3) It's better to consider the impact to the 
>> >> > >> > > > > > > >> stability of
>> >> > >> the
>> >> > >> > > > > cluster
>> >> > >> > > > > > > >> If we perform the compiling in the application 
>> >> > >> > > > > > > >> master, we
>> >> > >> should
>> >> > >> > > > > > > consider
>> >> > >> > > > > > > >> the impact of the compiling errors. Although YARN 
>> >> > >> > > > > > > >> could
>> >> > >> resume
>> >> > >> > > the
>> >> > >> > > > > > > >> application master in case of failures, but in some 
>> >> > >> > > > > > > >> case
>> >> > >> the
>> >> > >> > > > > compiling
>> >> > >> > > > > > > >> failure may be a waste of cluster resource and may 
>> >> > >> > > > > > > >> impact
>> >> > >> the
>> >> > >> > > > > > stability
>> >> > >> > > > > > > the
>> >> > >> > > > > > > >> cluster and the other jobs in the cluster, such as the
>> >> > >> resource
>> >> > >> > > > path
>> >> > >> > > > > > is
>> >> > >> > > > > > > >> incorrect, the user program itself has some 
>> >> > >> > > > > > > >> problems(in
>> >> > >> this
>> >> > >> > > case,
>> >> > >> > > > > job
>> >> > >> > > > > > > >> failover cannot solve this kind of problems) etc. In 
>> >> > >> > > > > > > >> the
>> >> > >> current
>> >> > >> > > > > > > >> implemention, the compiling errors are handled in the
>> >> > >> client
>> >> > >> > > side
>> >> > >> > > > > and
>> >> > >> > > > > > > there
>> >> > >> > > > > > > >> is no impact to the cluster at all.
>> >> > >> > > > > > > >>
>> >> > >> > > > > > > >> Regarding to 1), it's clearly pointed in the design 
>> >> > >> > > > > > > >> doc
>> >> > >> that
>> >> > >> > > only
>> >> > >> > > > > > > per-job
>> >> > >> > > > > > > >> mode will be supported. However, I think it's better 
>> >> > >> > > > > > > >> to
>> >> > >> also
>> >> > >> > > > > consider
>> >> > >> > > > > > > the
>> >> > >> > > > > > > >> session mode in the design doc.
>> >> > >> > > > > > > >> Regarding to 2) and 3), I have not seen related 
>> >> > >> > > > > > > >> sections
>> >> > >> in the
>> >> > >> > > > > design
>> >> > >> > > > > > > >> doc. It will be good if we can cover them in the 
>> >> > >> > > > > > > >> design
>> >> > >> doc.
>> >> > >> > > > > > > >>
>> >> > >> > > > > > > >> Feel free to correct me If there is anything I
>> >> > >> misunderstand.
>> >> > >> > > > > > > >>
>> >> > >> > > > > > > >> Regards,
>> >> > >> > > > > > > >> Dian
>> >> > >> > > > > > > >>
>> >> > >> > > > > > > >>
>> >> > >> > > > > > > >> > 在 2019年12月27日,上午3:13,Peter Huang <
>> >> > >> huangzhenqiu0...@gmail.com>
>> >> > >> > > > 写道:
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> > Hi Yang,
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> > I can't agree more. The effort definitely needs to 
>> >> > >> > > > > > > >> > align
>> >> > >> with
>> >> > >> > > > the
>> >> > >> > > > > > > final
>> >> > >> > > > > > > >> > goal of FLIP-73.
>> >> > >> > > > > > > >> > I am thinking about whether we can achieve the goal 
>> >> > >> > > > > > > >> > with
>> >> > >> two
>> >> > >> > > > > phases.
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> > 1) Phase I
>> >> > >> > > > > > > >> > As the CLiFrontend will not be depreciated soon. We 
>> >> > >> > > > > > > >> > can
>> >> > >> still
>> >> > >> > > > use
>> >> > >> > > > > > the
>> >> > >> > > > > > > >> > deployMode flag there,
>> >> > >> > > > > > > >> > pass the program info through Flink configuration,  
>> >> > >> > > > > > > >> > use
>> >> > >> the
>> >> > >> > > > > > > >> > ClassPathJobGraphRetriever
>> >> > >> > > > > > > >> > to generate the job graph in ClusterEntrypoints of 
>> >> > >> > > > > > > >> > yarn
>> >> > >> and
>> >> > >> > > > > > > Kubernetes.
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> > 2) Phase II
>> >> > >> > > > > > > >> > In  AbstractJobClusterExecutor, the job graph is
>> >> > >> generated in
>> >> > >> > > > the
>> >> > >> > > > > > > >> execute
>> >> > >> > > > > > > >> > function. We can still
>> >> > >> > > > > > > >> > use the deployMode in it. With deployMode = 
>> >> > >> > > > > > > >> > cluster, the
>> >> > >> > > execute
>> >> > >> > > > > > > >> function
>> >> > >> > > > > > > >> > only starts the cluster.
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> > When {Yarn/Kuberneates}PerJobClusterEntrypoint 
>> >> > >> > > > > > > >> > starts,
>> >> > >> It will
>> >> > >> > > > > start
>> >> > >> > > > > > > the
>> >> > >> > > > > > > >> > dispatch first, then we can use
>> >> > >> > > > > > > >> > a ClusterEnvironment similar to ContextEnvironment 
>> >> > >> > > > > > > >> > to
>> >> > >> submit
>> >> > >> > > the
>> >> > >> > > > > job
>> >> > >> > > > > > > >> with
>> >> > >> > > > > > > >> > jobName the local
>> >> > >> > > > > > > >> > dispatcher. For the details, we need more 
>> >> > >> > > > > > > >> > investigation.
>> >> > >> Let's
>> >> > >> > > > > wait
>> >> > >> > > > > > > >> > for @Aljoscha
>> >> > >> > > > > > > >> > Krettek <aljos...@apache.org> @Till Rohrmann <
>> >> > >> > > > > trohrm...@apache.org
>> >> > >> > > > > > >'s
>> >> > >> > > > > > > >> > feedback after the holiday season.
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> > Thank you in advance. Merry Chrismas and Happy New
>> >> > >> Year!!!
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> > Best Regards
>> >> > >> > > > > > > >> > Peter Huang
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> > On Wed, Dec 25, 2019 at 1:08 AM Yang Wang <
>> >> > >> > > > danrtsey...@gmail.com>
>> >> > >> > > > > > > >> wrote:
>> >> > >> > > > > > > >> >
>> >> > >> > > > > > > >> >> Hi Peter,
>> >> > >> > > > > > > >> >>
>> >> > >> > > > > > > >> >> I think we need to reconsider tison's suggestion
>> >> > >> seriously.
>> >> > >> > > > After
>> >> > >> > > > > > > >> FLIP-73,
>> >> > >> > > > > > > >> >> the deployJobCluster has
>> >> > >> > > > > > > >> >> beenmoved into `JobClusterExecutor#execute`. It 
>> >> > >> > > > > > > >> >> should
>> >> > >> not be
>> >> > >> > > > > > > perceived
>> >> > >> > > > > > > >> >> for `CliFrontend`. That
>> >> > >> > > > > > > >> >> means the user program will *ALWAYS* be executed on
>> >> > >> client
>> >> > >> > > > side.
>> >> > >> > > > > > This
>> >> > >> > > > > > > >> is
>> >> > >> > > > > > > >> >> the by design behavior.
>> >> > >> > > > > > > >> >> So, we could not just add `if(client mode) .. else
>> >> > >> if(cluster
>> >> > >> > > > > mode)
>> >> > >> > > > > > > >> ...`
>> >> > >> > > > > > > >> >> codes in `CliFrontend` to bypass
>> >> > >> > > > > > > >> >> the executor. We need to find a clean way to 
>> >> > >> > > > > > > >> >> decouple
>> >> > >> > > executing
>> >> > >> > > > > > user
>> >> > >> > > > > > > >> >> program and deploying per-job
>> >> > >> > > > > > > >> >> cluster. Based on this, we could support to 
>> >> > >> > > > > > > >> >> execute user
>> >> > >> > > > program
>> >> > >> > > > > on
>> >> > >> > > > > > > >> client
>> >> > >> > > > > > > >> >> or master side.
>> >> > >> > > > > > > >> >>
>> >> > >> > > > > > > >> >> Maybe Aljoscha and Jeff could give some good
>> >> > >> suggestions.
>> >> > >> > > > > > > >> >>
>> >> > >> > > > > > > >> >>
>> >> > >> > > > > > > >> >>
>> >> > >> > > > > > > >> >> Best,
>> >> > >> > > > > > > >> >> Yang
>> >> > >> > > > > > > >> >>
>> >> > >> > > > > > > >> >> Peter Huang <huangzhenqiu0...@gmail.com> 
>> >> > >> > > > > > > >> >> 于2019年12月25日周三
>> >> > >> > > > > 上午4:03写道:
>> >> > >> > > > > > > >> >>
>> >> > >> > > > > > > >> >>> Hi Jingjing,
>> >> > >> > > > > > > >> >>>
>> >> > >> > > > > > > >> >>> The improvement proposed is a deployment option 
>> >> > >> > > > > > > >> >>> for
>> >> > >> CLI. For
>> >> > >> > > > SQL
>> >> > >> > > > > > > based
>> >> > >> > > > > > > >> >>> Flink application, It is more convenient to use 
>> >> > >> > > > > > > >> >>> the
>> >> > >> existing
>> >> > >> > > > > model
>> >> > >> > > > > > > in
>> >> > >> > > > > > > >> >>> SqlClient in which
>> >> > >> > > > > > > >> >>> the job graph is generated within SqlClient. After
>> >> > >> adding
>> >> > >> > > the
>> >> > >> > > > > > > delayed
>> >> > >> > > > > > > >> job
>> >> > >> > > > > > > >> >>> graph generation, I think there is no change is 
>> >> > >> > > > > > > >> >>> needed
>> >> > >> for
>> >> > >> > > > your
>> >> > >> > > > > > > side.
>> >> > >> > > > > > > >> >>>
>> >> > >> > > > > > > >> >>>
>> >> > >> > > > > > > >> >>> Best Regards
>> >> > >> > > > > > > >> >>> Peter Huang
>> >> > >> > > > > > > >> >>>
>> >> > >> > > > > > > >> >>>
>> >> > >> > > > > > > >> >>> On Wed, Dec 18, 2019 at 6:01 AM jingjing bai <
>> >> > >> > > > > > > >> baijingjing7...@gmail.com>
>> >> > >> > > > > > > >> >>> wrote:
>> >> > >> > > > > > > >> >>>
>> >> > >> > > > > > > >> >>>> hi peter:
>> >> > >> > > > > > > >> >>>>    we had extension SqlClent to support sql job
>> >> > >> submit in
>> >> > >> > > web
>> >> > >> > > > > > base
>> >> > >> > > > > > > on
>> >> > >> > > > > > > >> >>>> flink 1.9.   we support submit to yarn on per job
>> >> > >> mode too.
>> >> > >> > > > > > > >> >>>>    in this case, the job graph generated  on 
>> >> > >> > > > > > > >> >>>> client
>> >> > >> side
>> >> > >> > > .  I
>> >> > >> > > > > > think
>> >> > >> > > > > > > >> >>> this
>> >> > >> > > > > > > >> >>>> discuss Mainly to improve api programme.  but in 
>> >> > >> > > > > > > >> >>>> my
>> >> > >> case ,
>> >> > >> > > > > there
>> >> > >> > > > > > is
>> >> > >> > > > > > > >> no
>> >> > >> > > > > > > >> >>>> jar to upload but only a sql string .
>> >> > >> > > > > > > >> >>>>    do u had more suggestion to improve for sql 
>> >> > >> > > > > > > >> >>>> mode
>> >> > >> or it
>> >> > >> > > is
>> >> > >> > > > > > only a
>> >> > >> > > > > > > >> >>>> switch for api programme?
>> >> > >> > > > > > > >> >>>>
>> >> > >> > > > > > > >> >>>>
>> >> > >> > > > > > > >> >>>> best
>> >> > >> > > > > > > >> >>>> bai jj
>> >> > >> > > > > > > >> >>>>
>> >> > >> > > > > > > >> >>>>
>> >> > >> > > > > > > >> >>>> Yang Wang <danrtsey...@gmail.com> 于2019年12月18日周三
>> >> > >> 下午7:21写道:
>> >> > >> > > > > > > >> >>>>
>> >> > >> > > > > > > >> >>>>> I just want to revive this discussion.
>> >> > >> > > > > > > >> >>>>>
>> >> > >> > > > > > > >> >>>>> Recently, i am thinking about how to natively 
>> >> > >> > > > > > > >> >>>>> run
>> >> > >> flink
>> >> > >> > > > > per-job
>> >> > >> > > > > > > >> >>> cluster on
>> >> > >> > > > > > > >> >>>>> Kubernetes.
>> >> > >> > > > > > > >> >>>>> The per-job mode on Kubernetes is very different
>> >> > >> from on
>> >> > >> > > > Yarn.
>> >> > >> > > > > > And
>> >> > >> > > > > > > >> we
>> >> > >> > > > > > > >> >>> will
>> >> > >> > > > > > > >> >>>>> have
>> >> > >> > > > > > > >> >>>>> the same deployment requirements to the client 
>> >> > >> > > > > > > >> >>>>> and
>> >> > >> entry
>> >> > >> > > > > point.
>> >> > >> > > > > > > >> >>>>>
>> >> > >> > > > > > > >> >>>>> 1. Flink client not always need a local jar to 
>> >> > >> > > > > > > >> >>>>> start
>> >> > >> a
>> >> > >> > > Flink
>> >> > >> > > > > > > per-job
>> >> > >> > > > > > > >> >>>>> cluster. We could
>> >> > >> > > > > > > >> >>>>> support multiple schemas. For example,
>> >> > >> > > > file:///path/of/my.jar
>> >> > >> > > > > > > means
>> >> > >> > > > > > > >> a
>> >> > >> > > > > > > >> >>> jar
>> >> > >> > > > > > > >> >>>>> located
>> >> > >> > > > > > > >> >>>>> at client side,
>> >> > >> hdfs://myhdfs/user/myname/flink/my.jar
>> >> > >> > > > means a
>> >> > >> > > > > > jar
>> >> > >> > > > > > > >> >>> located
>> >> > >> > > > > > > >> >>>>> at
>> >> > >> > > > > > > >> >>>>> remote hdfs, local:///path/in/image/my.jar 
>> >> > >> > > > > > > >> >>>>> means a
>> >> > >> jar
>> >> > >> > > > located
>> >> > >> > > > > > at
>> >> > >> > > > > > > >> >>>>> jobmanager side.
>> >> > >> > > > > > > >> >>>>>
>> >> > >> > > > > > > >> >>>>> 2. Support running user program on master side. 
>> >> > >> > > > > > > >> >>>>> This
>> >> > >> also
>> >> > >> > > > > means
>> >> > >> > > > > > > the
>> >> > >> > > > > > > >> >>> entry
>> >> > >> > > > > > > >> >>>>> point
>> >> > >> > > > > > > >> >>>>> will generate the job graph on master side. We 
>> >> > >> > > > > > > >> >>>>> could
>> >> > >> use
>> >> > >> > > the
>> >> > >> > > > > > > >> >>>>> ClasspathJobGraphRetriever
>> >> > >> > > > > > > >> >>>>> or start a local Flink client to achieve this
>> >> > >> purpose.
>> >> > >> > > > > > > >> >>>>>
>> >> > >> > > > > > > >> >>>>>
>> >> > >> > > > > > > >> >>>>> cc tison, Aljoscha & Kostas Do you think this 
>> >> > >> > > > > > > >> >>>>> is the
>> >> > >> right
>> >> > >> > > > > > > >> direction we
>> >> > >> > > > > > > >> >>>>> need to work?
>> >> > >> > > > > > > >> >>>>>
>> >> > >> > > > > > > >> >>>>> tison <wander4...@gmail.com> 于2019年12月12日周四
>> >> > >> 下午4:48写道:
>> >> > >> > > > > > > >> >>>>>
>> >> > >> > > > > > > >> >>>>>> A quick idea is that we separate the deployment
>> >> > >> from user
>> >> > >> > > > > > program
>> >> > >> > > > > > > >> >>> that
>> >> > >> > > > > > > >> >>>>> it
>> >> > >> > > > > > > >> >>>>>> has always been done
>> >> > >> > > > > > > >> >>>>>> outside the program. On user program executed 
>> >> > >> > > > > > > >> >>>>>> there
>> >> > >> is
>> >> > >> > > > > always a
>> >> > >> > > > > > > >> >>>>>> ClusterClient that communicates with
>> >> > >> > > > > > > >> >>>>>> an existing cluster, remote or local. It will 
>> >> > >> > > > > > > >> >>>>>> be
>> >> > >> another
>> >> > >> > > > > thread
>> >> > >> > > > > > > so
>> >> > >> > > > > > > >> >>> just
>> >> > >> > > > > > > >> >>>>> for
>> >> > >> > > > > > > >> >>>>>> your information.
>> >> > >> > > > > > > >> >>>>>>
>> >> > >> > > > > > > >> >>>>>> Best,
>> >> > >> > > > > > > >> >>>>>> tison.
>> >> > >> > > > > > > >> >>>>>>
>> >> > >> > > > > > > >> >>>>>>
>> >> > >> > > > > > > >> >>>>>> tison <wander4...@gmail.com> 于2019年12月12日周四
>> >> > >> 下午4:40写道:
>> >> > >> > > > > > > >> >>>>>>
>> >> > >> > > > > > > >> >>>>>>> Hi Peter,
>> >> > >> > > > > > > >> >>>>>>>
>> >> > >> > > > > > > >> >>>>>>> Another concern I realized recently is that 
>> >> > >> > > > > > > >> >>>>>>> with
>> >> > >> current
>> >> > >> > > > > > > Executors
>> >> > >> > > > > > > >> >>>>>>> abstraction(FLIP-73)
>> >> > >> > > > > > > >> >>>>>>> I'm afraid that user program is designed to 
>> >> > >> > > > > > > >> >>>>>>> ALWAYS
>> >> > >> run
>> >> > >> > > on
>> >> > >> > > > > the
>> >> > >> > > > > > > >> >>> client
>> >> > >> > > > > > > >> >>>>>> side.
>> >> > >> > > > > > > >> >>>>>>> Specifically,
>> >> > >> > > > > > > >> >>>>>>> we deploy the job in executor when env.execute
>> >> > >> called.
>> >> > >> > > > This
>> >> > >> > > > > > > >> >>>>> abstraction
>> >> > >> > > > > > > >> >>>>>>> possibly prevents
>> >> > >> > > > > > > >> >>>>>>> Flink runs user program on the cluster side.
>> >> > >> > > > > > > >> >>>>>>>
>> >> > >> > > > > > > >> >>>>>>> For your proposal, in this case we already
>> >> > >> compiled the
>> >> > >> > > > > > program
>> >> > >> > > > > > > >> and
>> >> > >> > > > > > > >> >>>>> run
>> >> > >> > > > > > > >> >>>>>> on
>> >> > >> > > > > > > >> >>>>>>> the client side,
>> >> > >> > > > > > > >> >>>>>>> even we deploy a cluster and retrieve job 
>> >> > >> > > > > > > >> >>>>>>> graph
>> >> > >> from
>> >> > >> > > > program
>> >> > >> > > > > > > >> >>>>> metadata, it
>> >> > >> > > > > > > >> >>>>>>> doesn't make
>> >> > >> > > > > > > >> >>>>>>> many sense.
>> >> > >> > > > > > > >> >>>>>>>
>> >> > >> > > > > > > >> >>>>>>> cc Aljoscha & Kostas what do you think about 
>> >> > >> > > > > > > >> >>>>>>> this
>> >> > >> > > > > constraint?
>> >> > >> > > > > > > >> >>>>>>>
>> >> > >> > > > > > > >> >>>>>>> Best,
>> >> > >> > > > > > > >> >>>>>>> tison.
>> >> > >> > > > > > > >> >>>>>>>
>> >> > >> > > > > > > >> >>>>>>>
>> >> > >> > > > > > > >> >>>>>>> Peter Huang <huangzhenqiu0...@gmail.com>
>> >> > >> 于2019年12月10日周二
>> >> > >> > > > > > > >> 下午12:45写道:
>> >> > >> > > > > > > >> >>>>>>>
>> >> > >> > > > > > > >> >>>>>>>> Hi Tison,
>> >> > >> > > > > > > >> >>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>> Yes, you are right. I think I made the wrong
>> >> > >> argument
>> >> > >> > > in
>> >> > >> > > > > the
>> >> > >> > > > > > > doc.
>> >> > >> > > > > > > >> >>>>>>>> Basically, the packaging jar problem is only 
>> >> > >> > > > > > > >> >>>>>>>> for
>> >> > >> > > platform
>> >> > >> > > > > > > users.
>> >> > >> > > > > > > >> >>> In
>> >> > >> > > > > > > >> >>>>> our
>> >> > >> > > > > > > >> >>>>>>>> internal deploy service,
>> >> > >> > > > > > > >> >>>>>>>> we further optimized the deployment latency 
>> >> > >> > > > > > > >> >>>>>>>> by
>> >> > >> letting
>> >> > >> > > > > users
>> >> > >> > > > > > to
>> >> > >> > > > > > > >> >>>>>> packaging
>> >> > >> > > > > > > >> >>>>>>>> flink-runtime together with the uber jar, so 
>> >> > >> > > > > > > >> >>>>>>>> that
>> >> > >> we
>> >> > >> > > > don't
>> >> > >> > > > > > need
>> >> > >> > > > > > > >> to
>> >> > >> > > > > > > >> >>>>>>>> consider
>> >> > >> > > > > > > >> >>>>>>>> multiple flink version
>> >> > >> > > > > > > >> >>>>>>>> support for now. In the session client mode, 
>> >> > >> > > > > > > >> >>>>>>>> as
>> >> > >> Flink
>> >> > >> > > > libs
>> >> > >> > > > > > will
>> >> > >> > > > > > > >> be
>> >> > >> > > > > > > >> >>>>>> shipped
>> >> > >> > > > > > > >> >>>>>>>> anyway as local resources of yarn. Users 
>> >> > >> > > > > > > >> >>>>>>>> actually
>> >> > >> don't
>> >> > >> > > > > need
>> >> > >> > > > > > to
>> >> > >> > > > > > > >> >>>>> package
>> >> > >> > > > > > > >> >>>>>>>> those libs into job jar.
>> >> > >> > > > > > > >> >>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>> Best Regards
>> >> > >> > > > > > > >> >>>>>>>> Peter Huang
>> >> > >> > > > > > > >> >>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>> On Mon, Dec 9, 2019 at 8:35 PM tison <
>> >> > >> > > > wander4...@gmail.com
>> >> > >> > > > > >
>> >> > >> > > > > > > >> >>> wrote:
>> >> > >> > > > > > > >> >>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>> 3. What do you mean about the package? Do 
>> >> > >> > > > > > > >> >>>>>>>>>> users
>> >> > >> need
>> >> > >> > > to
>> >> > >> > > > > > > >> >>> compile
>> >> > >> > > > > > > >> >>>>>> their
>> >> > >> > > > > > > >> >>>>>>>>> jars
>> >> > >> > > > > > > >> >>>>>>>>> inlcuding flink-clients, flink-optimizer,
>> >> > >> flink-table
>> >> > >> > > > > codes?
>> >> > >> > > > > > > >> >>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>> The answer should be no because they exist 
>> >> > >> > > > > > > >> >>>>>>>>> in
>> >> > >> system
>> >> > >> > > > > > > classpath.
>> >> > >> > > > > > > >> >>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>> Best,
>> >> > >> > > > > > > >> >>>>>>>>> tison.
>> >> > >> > > > > > > >> >>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>> Yang Wang <danrtsey...@gmail.com> 
>> >> > >> > > > > > > >> >>>>>>>>> 于2019年12月10日周二
>> >> > >> > > > > 下午12:18写道:
>> >> > >> > > > > > > >> >>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>> Hi Peter,
>> >> > >> > > > > > > >> >>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>> Thanks a lot for starting this discussion. 
>> >> > >> > > > > > > >> >>>>>>>>>> I
>> >> > >> think
>> >> > >> > > this
>> >> > >> > > > > is
>> >> > >> > > > > > a
>> >> > >> > > > > > > >> >>> very
>> >> > >> > > > > > > >> >>>>>>>> useful
>> >> > >> > > > > > > >> >>>>>>>>>> feature.
>> >> > >> > > > > > > >> >>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>> Not only for Yarn, i am focused on flink on
>> >> > >> > > Kubernetes
>> >> > >> > > > > > > >> >>>>> integration
>> >> > >> > > > > > > >> >>>>>> and
>> >> > >> > > > > > > >> >>>>>>>>> come
>> >> > >> > > > > > > >> >>>>>>>>>> across the same
>> >> > >> > > > > > > >> >>>>>>>>>> problem. I do not want the job graph 
>> >> > >> > > > > > > >> >>>>>>>>>> generated
>> >> > >> on
>> >> > >> > > > client
>> >> > >> > > > > > > side.
>> >> > >> > > > > > > >> >>>>>>>> Instead,
>> >> > >> > > > > > > >> >>>>>>>>> the
>> >> > >> > > > > > > >> >>>>>>>>>> user jars are built in
>> >> > >> > > > > > > >> >>>>>>>>>> a user-defined image. When the job manager
>> >> > >> launched,
>> >> > >> > > we
>> >> > >> > > > > > just
>> >> > >> > > > > > > >> >>>>> need to
>> >> > >> > > > > > > >> >>>>>>>>>> generate the job graph
>> >> > >> > > > > > > >> >>>>>>>>>> based on local user jars.
>> >> > >> > > > > > > >> >>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>> I have some small suggestion about this.
>> >> > >> > > > > > > >> >>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>> 1. `ProgramJobGraphRetriever` is very 
>> >> > >> > > > > > > >> >>>>>>>>>> similar to
>> >> > >> > > > > > > >> >>>>>>>>>> `ClasspathJobGraphRetriever`, the 
>> >> > >> > > > > > > >> >>>>>>>>>> differences
>> >> > >> > > > > > > >> >>>>>>>>>> are the former needs `ProgramMetadata` and 
>> >> > >> > > > > > > >> >>>>>>>>>> the
>> >> > >> latter
>> >> > >> > > > > needs
>> >> > >> > > > > > > >> >>> some
>> >> > >> > > > > > > >> >>>>>>>>> arguments.
>> >> > >> > > > > > > >> >>>>>>>>>> Is it possible to
>> >> > >> > > > > > > >> >>>>>>>>>> have an unified `JobGraphRetriever` to 
>> >> > >> > > > > > > >> >>>>>>>>>> support
>> >> > >> both?
>> >> > >> > > > > > > >> >>>>>>>>>> 2. Is it possible to not use a local user 
>> >> > >> > > > > > > >> >>>>>>>>>> jar to
>> >> > >> > > start
>> >> > >> > > > a
>> >> > >> > > > > > > >> >>> per-job
>> >> > >> > > > > > > >> >>>>>>>> cluster?
>> >> > >> > > > > > > >> >>>>>>>>>> In your case, the user jars has
>> >> > >> > > > > > > >> >>>>>>>>>> existed on hdfs already and we do need to
>> >> > >> download
>> >> > >> > > the
>> >> > >> > > > > jars
>> >> > >> > > > > > > to
>> >> > >> > > > > > > >> >>>>>>>> deployer
>> >> > >> > > > > > > >> >>>>>>>>>> service. Currently, we
>> >> > >> > > > > > > >> >>>>>>>>>> always need a local user jar to start a 
>> >> > >> > > > > > > >> >>>>>>>>>> flink
>> >> > >> > > cluster.
>> >> > >> > > > It
>> >> > >> > > > > > is
>> >> > >> > > > > > > >> >>> be
>> >> > >> > > > > > > >> >>>>>> great
>> >> > >> > > > > > > >> >>>>>>>> if
>> >> > >> > > > > > > >> >>>>>>>>> we
>> >> > >> > > > > > > >> >>>>>>>>>> could support remote user jars.
>> >> > >> > > > > > > >> >>>>>>>>>>>> In the implementation, we assume users 
>> >> > >> > > > > > > >> >>>>>>>>>>>> package
>> >> > >> > > > > > > >> >>> flink-clients,
>> >> > >> > > > > > > >> >>>>>>>>>> flink-optimizer, flink-table together 
>> >> > >> > > > > > > >> >>>>>>>>>> within
>> >> > >> the job
>> >> > >> > > > jar.
>> >> > >> > > > > > > >> >>>>> Otherwise,
>> >> > >> > > > > > > >> >>>>>>>> the
>> >> > >> > > > > > > >> >>>>>>>>>> job graph generation within
>> >> > >> JobClusterEntryPoint will
>> >> > >> > > > > fail.
>> >> > >> > > > > > > >> >>>>>>>>>> 3. What do you mean about the package? Do 
>> >> > >> > > > > > > >> >>>>>>>>>> users
>> >> > >> need
>> >> > >> > > to
>> >> > >> > > > > > > >> >>> compile
>> >> > >> > > > > > > >> >>>>>> their
>> >> > >> > > > > > > >> >>>>>>>>> jars
>> >> > >> > > > > > > >> >>>>>>>>>> inlcuding flink-clients, flink-optimizer,
>> >> > >> flink-table
>> >> > >> > > > > > codes?
>> >> > >> > > > > > > >> >>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>> Best,
>> >> > >> > > > > > > >> >>>>>>>>>> Yang
>> >> > >> > > > > > > >> >>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>> Peter Huang <huangzhenqiu0...@gmail.com>
>> >> > >> > > > 于2019年12月10日周二
>> >> > >> > > > > > > >> >>>>> 上午2:37写道:
>> >> > >> > > > > > > >> >>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>>> Dear All,
>> >> > >> > > > > > > >> >>>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>>> Recently, the Flink community starts to
>> >> > >> improve the
>> >> > >> > > > yarn
>> >> > >> > > > > > > >> >>>>> cluster
>> >> > >> > > > > > > >> >>>>>>>>>> descriptor
>> >> > >> > > > > > > >> >>>>>>>>>>> to make job jar and config files 
>> >> > >> > > > > > > >> >>>>>>>>>>> configurable
>> >> > >> from
>> >> > >> > > > CLI.
>> >> > >> > > > > It
>> >> > >> > > > > > > >> >>>>>> improves
>> >> > >> > > > > > > >> >>>>>>>> the
>> >> > >> > > > > > > >> >>>>>>>>>>> flexibility of  Flink deployment Yarn Per 
>> >> > >> > > > > > > >> >>>>>>>>>>> Job
>> >> > >> Mode.
>> >> > >> > > > For
>> >> > >> > > > > > > >> >>>>> platform
>> >> > >> > > > > > > >> >>>>>>>> users
>> >> > >> > > > > > > >> >>>>>>>>>> who
>> >> > >> > > > > > > >> >>>>>>>>>>> manage tens of hundreds of streaming 
>> >> > >> > > > > > > >> >>>>>>>>>>> pipelines
>> >> > >> for
>> >> > >> > > the
>> >> > >> > > > > > whole
>> >> > >> > > > > > > >> >>>>> org
>> >> > >> > > > > > > >> >>>>>> or
>> >> > >> > > > > > > >> >>>>>>>>>>> company, we found the job graph 
>> >> > >> > > > > > > >> >>>>>>>>>>> generation in
>> >> > >> > > > > client-side
>> >> > >> > > > > > is
>> >> > >> > > > > > > >> >>>>>> another
>> >> > >> > > > > > > >> >>>>>>>>>>> pinpoint. Thus, we want to propose a
>> >> > >> configurable
>> >> > >> > > > > feature
>> >> > >> > > > > > > >> >>> for
>> >> > >> > > > > > > >> >>>>>>>>>>> FlinkYarnSessionCli. The feature can allow
>> >> > >> users to
>> >> > >> > > > > choose
>> >> > >> > > > > > > >> >>> the
>> >> > >> > > > > > > >> >>>>> job
>> >> > >> > > > > > > >> >>>>>>>>> graph
>> >> > >> > > > > > > >> >>>>>>>>>>> generation in Flink ClusterEntryPoint so 
>> >> > >> > > > > > > >> >>>>>>>>>>> that
>> >> > >> the
>> >> > >> > > job
>> >> > >> > > > > jar
>> >> > >> > > > > > > >> >>>>> doesn't
>> >> > >> > > > > > > >> >>>>>>>> need
>> >> > >> > > > > > > >> >>>>>>>>> to
>> >> > >> > > > > > > >> >>>>>>>>>>> be locally for the job graph generation. 
>> >> > >> > > > > > > >> >>>>>>>>>>> The
>> >> > >> > > proposal
>> >> > >> > > > is
>> >> > >> > > > > > > >> >>>>> organized
>> >> > >> > > > > > > >> >>>>>>>> as a
>> >> > >> > > > > > > >> >>>>>>>>>>> FLIP
>> >> > >> > > > > > > >> >>>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>
>> >> > >> > > > > > > >> >>>>>>
>> >> > >> > > > > > > >> >>>>>
>> >> > >> > > > > > > >> >>>
>> >> > >> > > > > > > >>
>> >> > >> > > > > > >
>> >> > >> > > > > >
>> >> > >> > > > >
>> >> > >> > > >
>> >> > >> > >
>> >> > >> https://cwiki.apache.org/confluence/display/FLINK/FLIP-85+Delayed+JobGraph+Generation
>> >> > >> > > > > > > >> >>>>>>>>>>> .
>> >> > >> > > > > > > >> >>>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>>> Any questions and suggestions are 
>> >> > >> > > > > > > >> >>>>>>>>>>> welcomed.
>> >> > >> Thank
>> >> > >> > > you
>> >> > >> > > > in
>> >> > >> > > > > > > >> >>>>> advance.
>> >> > >> > > > > > > >> >>>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>>> Best Regards
>> >> > >> > > > > > > >> >>>>>>>>>>> Peter Huang
>> >> > >> > > > > > > >> >>>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>>
>> >> > >> > > > > > > >> >>>>>>>
>> >> > >> > > > > > > >> >>>>>>
>> >> > >> > > > > > > >> >>>>>
>> >> > >> > > > > > > >> >>>>
>> >> > >> > > > > > > >> >>>
>> >> > >> > > > > > > >> >>
>> >> > >> > > > > > > >>
>> >> > >> > > > > > > >>
>> >> > >> > > > > > >
>> >> > >> > > > > >
>> >> > >> > > > >
>> >> > >> > > >
>> >> > >> > >
>> >> > >>
>> >> > >
>> >>

Reply via email to