I agree with Max since it hard to foresee when Flip-6 is really done.

Cheers,
Till

On Wed, Sep 28, 2016 at 4:24 PM, Maximilian Michels <m...@apache.org> wrote:

> Hi Eron,
>
> Great to see so much progress on the Mesos implementation! Thank you
> for sharing the code with us.
>
> I'm not entirely sure whether we actually wait on the completion of
> FLIP-6. We might complete the Mesos support for the 1.2.0 release and
> port its code to the new RPC abstraction that comes with FLIP-6
> afterwards. That is still to decide. It is probably also acceptable to
> have the new RPC layer and still use direct Akka code for Mesos.
> Client changes should be relatively independent of FLIP-6 and be made
> in such way that they are easily portable to FLIP-6.
>
> All in all, we are probably best of with merging your changes to the
> master quickly since Mesos support will be one of the most important
> new features of Flink 1.2.0.
>
> Best,
> Max
>
>
>
>
> On Mon, Sep 26, 2016 at 11:37 PM, Wright, Eron <ewri...@live.com> wrote:
> >
> >  Hello,
> >
> > The code I presented at FF2016 represents a 'status-quo' approach to
> realizing a specific scenario - "mesos-session.sh".   But the final
> solution will involve CLI changes and the full realization of a dispatcher,
> which conflicts with FLIP-6.   We should advance the client/dispatcher
> design of FLIP-6 before I make further changes.    Also we must decide
> whether the Mesos work should take FLIP-6 as a dependency, and/or strive to
> land a useable subset into master.
> >
> > Here's a summary of the code I presented, as reference for ongoing
> FLIP-6 design discussion.  A fresh PR for convenience:
> > https://github.com/EronWright/flink/pull/1/files
> >
> > 1. MesosDispatcher (Backend).   The 'backend' acts as a Mesos framework,
> to launch an AppMaster as a Mesos task.   For each session, the backend
> accepts "session parameters" which define the libraries, configuration,
> resource profile and other parameters needed to launch the AppMaster.
> The backend persists the information for recovery purposes.    Leader
> election is also used.   Not included is a dispatcher 'frontend' - a
> formalized API surface or REST server.
> >
> > 2. SessionParameters.   Captures the information needed to launch a
> session based on an AppMaster.    A session is a stateful execution
> environment for a program.   The session parameters can also be understood
> as the historical inputs to yarn-session.sh, plus job inputs per FLIP-6.
>  I acknowledge that the term 'session' is a working term.
> >
> > 3 . MesosDispatcherRunner.  The runner for the 'remote dispatcher'
> scenario, which would be started by Marathon, expose a REST API with which
> to submit/manage jobs, and host the above dispatcher backend.
> >
> > 4. FlinkMesosSessionCli.   This class mirrors the FlinkYarnSessionCli,
> which is used in both the 'flink run' scenario and 'yarn-session'
> scenario.    I didn't fully implement the CustomCommandLine interface which
> yields a ClusterClient, because the dispatcher API must be fleshed out
> first.
> >
> > 5. SessionArtifactHelper.   An attempt to consolidate logic related to
> session artifacts (i.e. ship files).
> >
> > 6. DispatcherClient.   The client interface for the dispatcher.      In
> concept there could be numerous implementations - a
> > 'remote' impl which would make REST calls to a remote dispatcher, a
> 'local' impl which would host the dispatcher directly.  Seen in this PR is
> only the latter but it might be throw-away code.
> >
> > 7. LaunchableMesosSession.   This class generates the effective
> container environment at launch time.
> >
> > 8. ContaineredJobMasterParameters.  Refactored from YARN code for
> sharing purposes.
> >
> > -Eron
>

Reply via email to