You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@reef.apache.org by Youngeun Cho <ye...@rubis.snu.ac.kr> on 2017/11/02 11:13:11 UTC

How to implement a REEF extension

To whom it may concern,

We write this email to ask for your guide to our REEF extension.

We are trying to implement an interference-aware multiple job scheduler on
REEF.

To achieve this, we composed our architecture as two parts.
First, we profile each job's execution, and according to it, we allocate
the job to the best available resource.

We are trying to modify the REEF source code to attach our profiler
implementation.
However we are struggling to find the good starting place to insert our
code.

We think the best place to insert our code, may be where REEF calls lower
resource manager to allocate resources for the job.

Could you kindly let us know where(name and location of the file) to modify
the source code?

Thank you.

Youngeun Cho,Youngsu Cho, and Joongsuk Park

Department of Computer Science,
Seoul National University

Re: How to implement a REEF extension

Posted by Markus Weimer <ma...@weimo.de>.
Welcome to the dev list! Please consider subscribing, as we otherwise have
to moderate each of your messages, which will delay their posting :)

On Thu, Nov 2, 2017 at 4:13 AM, Youngeun Cho <ye...@rubis.snu.ac.kr> wrote:

> We think the best place to insert our code, may be where REEF calls lower
> resource manager to allocate resources for the job.
>
> Could you kindly let us know where(name and location of the file) to modify
> the source code?
>

This code is different for each resource manager REEF supports. It is
captured in the Maven modules starting with `reef-runtime`, e.g.
`reef-runtime-yarn`. Each of the runtimes implements the following
interfaces:

   - `o.a.r.runtime.common.driver.api.ResourceLaunchHandler`: For launching
   containers
   - `o.a.r.runtime.common.driver.api.ResourceReleaseHandler`: For
   returning containers to the underlying resource manager
   - `o.a.r.runtime.common.driver.api.ResourceRequestHandler`: For
   requesting containers from the resource manager

In general, the package `org.apache.reef.runtime.common.driver.api` is a
worthwhile starting point to learn more about the interface between REEF
and a particular RM on the Driver.

Hope this helps,

Markus