You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@mesos.apache.org by Pradeep Kiruvale <pr...@gmail.com> on 2015/10/05 17:21:34 UTC

Scheduling tasks based on dependancy

Hi All,

Are there any frameworks that exists with the Mesos to schedule the bigger
apps?
I mean to say scheduling a app which has many services and will not fit
into one physical node.

Is there any frame work that can be used to
 schedule tasks based on the underlying hardware constraints like Network
bandwidth ?
 Schedule the tasks based on their dependencies and proximity to each other
in a cluster or a rack?

Thanks & Regards,
Pradeep

Re: Scheduling tasks based on dependancy

Posted by Pradeep Kiruvale <pr...@gmail.com>.
Hi  Guangya,

Thanks for information.

Regards,
Pradeep

On 5 October 2015 at 17:57, Guangya Liu <gy...@gmail.com> wrote:

> Pradeep,
>
> There is a JIRA ticket doing your requirement but not finished yet, please
> refer to https://issues.apache.org/jira/browse/MESOS-3366 for detail. The
> basic idea is using customized hook modules to collect customized metrics.
>
> For now, you have to set metrics/resource manually for each slave to
> workaround.
>
> Thanks,
>
> Guangya
>
> On Mon, Oct 5, 2015 at 11:49 PM, Pradeep Kiruvale <
> pradeepkiruvale@gmail.com> wrote:
>
>> Hi Guangya,
>>
>> Thanks for your reply. That is nice feature to group the slaves into
>> different racks and etc...But is there any way I can get metric of other
>> hardware
>> features other than CPU,MEM, DISK like IO, PCI devices that exists with
>> the node etc?
>>
>> Thanks,
>> Pradeep
>>
>> On 5 October 2015 at 17:45, Guangya Liu <gy...@gmail.com> wrote:
>>
>>> Hi Pradeep,
>>>
>>> I think that you can try Chronos and Marathon which can help you.
>>>
>>> *Marathon:* https://github.com/mesosphere/marathon
>>> You can try Marathon + Mesos + Mesos Resource Attribute
>>>
>>> When you start up mesos slave, uses --attributes option, here is an
>>> example:
>>> ./bin/mesos-slave.sh --master=9.21.61.21:5050 --quiet
>>> --log_dir=/tmp/mesos --attributes=rackid:r1;groupid:g1
>>> This basically defines two attributes for this mesos slave host. rackid
>>> with value r1 and groupid with value g1.
>>>
>>> marathon start -i "like_test" -C "sleep 1000000" -n 4 -c 1 -m 50 -o
>>> "rackid:LIKE:r1"
>>>
>>> this will place applications on the slave node whose rackid is r1
>>>
>>> *Chronos:* https://github.com/mesos/chronos , Chronos supports the
>>> definition of jobs triggered by the completion of other jobs. It supports
>>> arbitrarily long dependency chains.
>>>
>>> Thanks,
>>>
>>> Guangya
>>>
>>> On Mon, Oct 5, 2015 at 11:21 PM, Pradeep Kiruvale <
>>> pradeepkiruvale@gmail.com> wrote:
>>>
>>>> Hi All,
>>>>
>>>> Are there any frameworks that exists with the Mesos to schedule the
>>>> bigger apps?
>>>> I mean to say scheduling a app which has many services and will not fit
>>>> into one physical node.
>>>>
>>>> Is there any frame work that can be used to
>>>>  schedule tasks based on the underlying hardware constraints like
>>>> Network bandwidth ?
>>>>
>>>  Schedule the tasks based on their dependencies and proximity to each
>>>> other in a cluster or a rack?
>>>>
>>>> Thanks & Regards,
>>>> Pradeep
>>>>
>>>
>>>
>>
>

Re: Scheduling tasks based on dependancy

Posted by Guangya Liu <gy...@gmail.com>.
Pradeep,

There is a JIRA ticket doing your requirement but not finished yet, please
refer to https://issues.apache.org/jira/browse/MESOS-3366 for detail. The
basic idea is using customized hook modules to collect customized metrics.

For now, you have to set metrics/resource manually for each slave to
workaround.

Thanks,

Guangya

On Mon, Oct 5, 2015 at 11:49 PM, Pradeep Kiruvale <pradeepkiruvale@gmail.com
> wrote:

> Hi Guangya,
>
> Thanks for your reply. That is nice feature to group the slaves into
> different racks and etc...But is there any way I can get metric of other
> hardware
> features other than CPU,MEM, DISK like IO, PCI devices that exists with
> the node etc?
>
> Thanks,
> Pradeep
>
> On 5 October 2015 at 17:45, Guangya Liu <gy...@gmail.com> wrote:
>
>> Hi Pradeep,
>>
>> I think that you can try Chronos and Marathon which can help you.
>>
>> *Marathon:* https://github.com/mesosphere/marathon
>> You can try Marathon + Mesos + Mesos Resource Attribute
>>
>> When you start up mesos slave, uses --attributes option, here is an
>> example:
>> ./bin/mesos-slave.sh --master=9.21.61.21:5050 --quiet
>> --log_dir=/tmp/mesos --attributes=rackid:r1;groupid:g1
>> This basically defines two attributes for this mesos slave host. rackid
>> with value r1 and groupid with value g1.
>>
>> marathon start -i "like_test" -C "sleep 1000000" -n 4 -c 1 -m 50 -o
>> "rackid:LIKE:r1"
>>
>> this will place applications on the slave node whose rackid is r1
>>
>> *Chronos:* https://github.com/mesos/chronos , Chronos supports the
>> definition of jobs triggered by the completion of other jobs. It supports
>> arbitrarily long dependency chains.
>>
>> Thanks,
>>
>> Guangya
>>
>> On Mon, Oct 5, 2015 at 11:21 PM, Pradeep Kiruvale <
>> pradeepkiruvale@gmail.com> wrote:
>>
>>> Hi All,
>>>
>>> Are there any frameworks that exists with the Mesos to schedule the
>>> bigger apps?
>>> I mean to say scheduling a app which has many services and will not fit
>>> into one physical node.
>>>
>>> Is there any frame work that can be used to
>>>  schedule tasks based on the underlying hardware constraints like
>>> Network bandwidth ?
>>>
>>  Schedule the tasks based on their dependencies and proximity to each
>>> other in a cluster or a rack?
>>>
>>> Thanks & Regards,
>>> Pradeep
>>>
>>
>>
>

Re: Scheduling tasks based on dependancy

Posted by Pradeep Kiruvale <pr...@gmail.com>.
Hi Guangya,

Thanks for your reply. That is nice feature to group the slaves into
different racks and etc...But is there any way I can get metric of other
hardware
features other than CPU,MEM, DISK like IO, PCI devices that exists with the
node etc?

Thanks,
Pradeep

On 5 October 2015 at 17:45, Guangya Liu <gy...@gmail.com> wrote:

> Hi Pradeep,
>
> I think that you can try Chronos and Marathon which can help you.
>
> *Marathon:* https://github.com/mesosphere/marathon
> You can try Marathon + Mesos + Mesos Resource Attribute
>
> When you start up mesos slave, uses --attributes option, here is an
> example:
> ./bin/mesos-slave.sh --master=9.21.61.21:5050 --quiet
> --log_dir=/tmp/mesos --attributes=rackid:r1;groupid:g1
> This basically defines two attributes for this mesos slave host. rackid
> with value r1 and groupid with value g1.
>
> marathon start -i "like_test" -C "sleep 1000000" -n 4 -c 1 -m 50 -o
> "rackid:LIKE:r1"
>
> this will place applications on the slave node whose rackid is r1
>
> *Chronos:* https://github.com/mesos/chronos , Chronos supports the
> definition of jobs triggered by the completion of other jobs. It supports
> arbitrarily long dependency chains.
>
> Thanks,
>
> Guangya
>
> On Mon, Oct 5, 2015 at 11:21 PM, Pradeep Kiruvale <
> pradeepkiruvale@gmail.com> wrote:
>
>> Hi All,
>>
>> Are there any frameworks that exists with the Mesos to schedule the
>> bigger apps?
>> I mean to say scheduling a app which has many services and will not fit
>> into one physical node.
>>
>> Is there any frame work that can be used to
>>  schedule tasks based on the underlying hardware constraints like Network
>> bandwidth ?
>>
>  Schedule the tasks based on their dependencies and proximity to each
>> other in a cluster or a rack?
>>
>> Thanks & Regards,
>> Pradeep
>>
>
>

Re: Scheduling tasks based on dependancy

Posted by Pradeep Kiruvale <pr...@gmail.com>.
Hi Sharma,

Thanks for the clarification. Now I got it!

Regards,
Pradeep

On 6 October 2015 at 19:35, Sharma Podila <sp...@netflix.com> wrote:

> Pradeep, attributes show up as name value pairs in the offers. Custom
> attributes can also be used in Fenzo for assignment optimizations. For
> example, we set custom attributes for AWS EC2 ZONE names and ASG names. We
> use the ZONE name custom attribute to balance tasks of a job across zones
> via the built in constraint plugin, BalancedHostAttributeConstraint
> <https://github.com/Netflix/Fenzo/blob/master/fenzo-core/src/main/java/com/netflix/fenzo/plugins/BalancedHostAttrConstraint.java>
>
>
> On Tue, Oct 6, 2015 at 4:03 AM, Pradeep Kiruvale <
> pradeepkiruvale@gmail.com> wrote:
>
>> Hi Guangya,
>>
>> One doubt about the  --attributes=rackid:r1;groupid:g1 option.
>>
>> How does the master provisions the resources? How will be the resource
>> offer?
>>
>> Is it like (Rack 1 , G1, System)? how does this way of  doing resource
>> offer will help?
>>
>> Can you please give me more information?
>>
>>
>> -Pradeep
>>
>>
>>
>> On 5 October 2015 at 17:45, Guangya Liu <gy...@gmail.com> wrote:
>>
>>> Hi Pradeep,
>>>
>>> I think that you can try Chronos and Marathon which can help you.
>>>
>>> *Marathon:* https://github.com/mesosphere/marathon
>>> You can try Marathon + Mesos + Mesos Resource Attribute
>>>
>>> When you start up mesos slave, uses --attributes option, here is an
>>> example:
>>> ./bin/mesos-slave.sh --master=9.21.61.21:5050 --quiet
>>> --log_dir=/tmp/mesos --attributes=rackid:r1;groupid:g1
>>> This basically defines two attributes for this mesos slave host. rackid
>>> with value r1 and groupid with value g1.
>>>
>>> marathon start -i "like_test" -C "sleep 1000000" -n 4 -c 1 -m 50 -o
>>> "rackid:LIKE:r1"
>>>
>>> this will place applications on the slave node whose rackid is r1
>>>
>>> *Chronos:* https://github.com/mesos/chronos , Chronos supports the
>>> definition of jobs triggered by the completion of other jobs. It supports
>>> arbitrarily long dependency chains.
>>>
>>> Thanks,
>>>
>>> Guangya
>>>
>>> On Mon, Oct 5, 2015 at 11:21 PM, Pradeep Kiruvale <
>>> pradeepkiruvale@gmail.com> wrote:
>>>
>>>> Hi All,
>>>>
>>>> Are there any frameworks that exists with the Mesos to schedule the
>>>> bigger apps?
>>>> I mean to say scheduling a app which has many services and will not fit
>>>> into one physical node.
>>>>
>>>> Is there any frame work that can be used to
>>>>  schedule tasks based on the underlying hardware constraints like
>>>> Network bandwidth ?
>>>>
>>>  Schedule the tasks based on their dependencies and proximity to each
>>>> other in a cluster or a rack?
>>>>
>>>> Thanks & Regards,
>>>> Pradeep
>>>>
>>>
>>>
>>
>

Re: Scheduling tasks based on dependancy

Posted by Sharma Podila <sp...@netflix.com>.
Pradeep, attributes show up as name value pairs in the offers. Custom
attributes can also be used in Fenzo for assignment optimizations. For
example, we set custom attributes for AWS EC2 ZONE names and ASG names. We
use the ZONE name custom attribute to balance tasks of a job across zones
via the built in constraint plugin, BalancedHostAttributeConstraint
<https://github.com/Netflix/Fenzo/blob/master/fenzo-core/src/main/java/com/netflix/fenzo/plugins/BalancedHostAttrConstraint.java>


On Tue, Oct 6, 2015 at 4:03 AM, Pradeep Kiruvale <pr...@gmail.com>
wrote:

> Hi Guangya,
>
> One doubt about the  --attributes=rackid:r1;groupid:g1 option.
>
> How does the master provisions the resources? How will be the resource
> offer?
>
> Is it like (Rack 1 , G1, System)? how does this way of  doing resource
> offer will help?
>
> Can you please give me more information?
>
>
> -Pradeep
>
>
>
> On 5 October 2015 at 17:45, Guangya Liu <gy...@gmail.com> wrote:
>
>> Hi Pradeep,
>>
>> I think that you can try Chronos and Marathon which can help you.
>>
>> *Marathon:* https://github.com/mesosphere/marathon
>> You can try Marathon + Mesos + Mesos Resource Attribute
>>
>> When you start up mesos slave, uses --attributes option, here is an
>> example:
>> ./bin/mesos-slave.sh --master=9.21.61.21:5050 --quiet
>> --log_dir=/tmp/mesos --attributes=rackid:r1;groupid:g1
>> This basically defines two attributes for this mesos slave host. rackid
>> with value r1 and groupid with value g1.
>>
>> marathon start -i "like_test" -C "sleep 1000000" -n 4 -c 1 -m 50 -o
>> "rackid:LIKE:r1"
>>
>> this will place applications on the slave node whose rackid is r1
>>
>> *Chronos:* https://github.com/mesos/chronos , Chronos supports the
>> definition of jobs triggered by the completion of other jobs. It supports
>> arbitrarily long dependency chains.
>>
>> Thanks,
>>
>> Guangya
>>
>> On Mon, Oct 5, 2015 at 11:21 PM, Pradeep Kiruvale <
>> pradeepkiruvale@gmail.com> wrote:
>>
>>> Hi All,
>>>
>>> Are there any frameworks that exists with the Mesos to schedule the
>>> bigger apps?
>>> I mean to say scheduling a app which has many services and will not fit
>>> into one physical node.
>>>
>>> Is there any frame work that can be used to
>>>  schedule tasks based on the underlying hardware constraints like
>>> Network bandwidth ?
>>>
>>  Schedule the tasks based on their dependencies and proximity to each
>>> other in a cluster or a rack?
>>>
>>> Thanks & Regards,
>>> Pradeep
>>>
>>
>>
>

Re: Scheduling tasks based on dependancy

Posted by Guangya Liu <gy...@gmail.com>.
Hi Pradeep,

>From here
https://github.com/apache/mesos/blob/master/src/master/master.cpp#L4913 you
can see that the offer does include resource attributes, so you can get the
filter the offers based on those attribute.

Thanks,

Guangya

On Tue, Oct 6, 2015 at 7:03 PM, Pradeep Kiruvale <pr...@gmail.com>
wrote:

> Hi Guangya,
>
> One doubt about the  --attributes=rackid:r1;groupid:g1 option.
>
> How does the master provisions the resources? How will be the resource
> offer?
>
> Is it like (Rack 1 , G1, System)? how does this way of  doing resource
> offer will help?
>
> Can you please give me more information?
>
>
> -Pradeep
>
>
>
> On 5 October 2015 at 17:45, Guangya Liu <gy...@gmail.com> wrote:
>
>> Hi Pradeep,
>>
>> I think that you can try Chronos and Marathon which can help you.
>>
>> *Marathon:* https://github.com/mesosphere/marathon
>> You can try Marathon + Mesos + Mesos Resource Attribute
>>
>> When you start up mesos slave, uses --attributes option, here is an
>> example:
>> ./bin/mesos-slave.sh --master=9.21.61.21:5050 --quiet
>> --log_dir=/tmp/mesos --attributes=rackid:r1;groupid:g1
>> This basically defines two attributes for this mesos slave host. rackid
>> with value r1 and groupid with value g1.
>>
>> marathon start -i "like_test" -C "sleep 1000000" -n 4 -c 1 -m 50 -o
>> "rackid:LIKE:r1"
>>
>> this will place applications on the slave node whose rackid is r1
>>
>> *Chronos:* https://github.com/mesos/chronos , Chronos supports the
>> definition of jobs triggered by the completion of other jobs. It supports
>> arbitrarily long dependency chains.
>>
>> Thanks,
>>
>> Guangya
>>
>> On Mon, Oct 5, 2015 at 11:21 PM, Pradeep Kiruvale <
>> pradeepkiruvale@gmail.com> wrote:
>>
>>> Hi All,
>>>
>>> Are there any frameworks that exists with the Mesos to schedule the
>>> bigger apps?
>>> I mean to say scheduling a app which has many services and will not fit
>>> into one physical node.
>>>
>>> Is there any frame work that can be used to
>>>  schedule tasks based on the underlying hardware constraints like
>>> Network bandwidth ?
>>>
>>  Schedule the tasks based on their dependencies and proximity to each
>>> other in a cluster or a rack?
>>>
>>> Thanks & Regards,
>>> Pradeep
>>>
>>
>>
>

Re: Scheduling tasks based on dependancy

Posted by Pradeep Kiruvale <pr...@gmail.com>.
Hi Guangya,

One doubt about the  --attributes=rackid:r1;groupid:g1 option.

How does the master provisions the resources? How will be the resource
offer?

Is it like (Rack 1 , G1, System)? how does this way of  doing resource
offer will help?

Can you please give me more information?


-Pradeep



On 5 October 2015 at 17:45, Guangya Liu <gy...@gmail.com> wrote:

> Hi Pradeep,
>
> I think that you can try Chronos and Marathon which can help you.
>
> *Marathon:* https://github.com/mesosphere/marathon
> You can try Marathon + Mesos + Mesos Resource Attribute
>
> When you start up mesos slave, uses --attributes option, here is an
> example:
> ./bin/mesos-slave.sh --master=9.21.61.21:5050 --quiet
> --log_dir=/tmp/mesos --attributes=rackid:r1;groupid:g1
> This basically defines two attributes for this mesos slave host. rackid
> with value r1 and groupid with value g1.
>
> marathon start -i "like_test" -C "sleep 1000000" -n 4 -c 1 -m 50 -o
> "rackid:LIKE:r1"
>
> this will place applications on the slave node whose rackid is r1
>
> *Chronos:* https://github.com/mesos/chronos , Chronos supports the
> definition of jobs triggered by the completion of other jobs. It supports
> arbitrarily long dependency chains.
>
> Thanks,
>
> Guangya
>
> On Mon, Oct 5, 2015 at 11:21 PM, Pradeep Kiruvale <
> pradeepkiruvale@gmail.com> wrote:
>
>> Hi All,
>>
>> Are there any frameworks that exists with the Mesos to schedule the
>> bigger apps?
>> I mean to say scheduling a app which has many services and will not fit
>> into one physical node.
>>
>> Is there any frame work that can be used to
>>  schedule tasks based on the underlying hardware constraints like Network
>> bandwidth ?
>>
>  Schedule the tasks based on their dependencies and proximity to each
>> other in a cluster or a rack?
>>
>> Thanks & Regards,
>> Pradeep
>>
>
>

Re: Scheduling tasks based on dependancy

Posted by Guangya Liu <gy...@gmail.com>.
Hi Pradeep,

I think that you can try Chronos and Marathon which can help you.

*Marathon:* https://github.com/mesosphere/marathon
You can try Marathon + Mesos + Mesos Resource Attribute

When you start up mesos slave, uses --attributes option, here is an example:
./bin/mesos-slave.sh --master=9.21.61.21:5050 --quiet --log_dir=/tmp/mesos
--attributes=rackid:r1;groupid:g1
This basically defines two attributes for this mesos slave host. rackid
with value r1 and groupid with value g1.

marathon start -i "like_test" -C "sleep 1000000" -n 4 -c 1 -m 50 -o
"rackid:LIKE:r1"

this will place applications on the slave node whose rackid is r1

*Chronos:* https://github.com/mesos/chronos , Chronos supports the
definition of jobs triggered by the completion of other jobs. It supports
arbitrarily long dependency chains.

Thanks,

Guangya

On Mon, Oct 5, 2015 at 11:21 PM, Pradeep Kiruvale <pradeepkiruvale@gmail.com
> wrote:

> Hi All,
>
> Are there any frameworks that exists with the Mesos to schedule the bigger
> apps?
> I mean to say scheduling a app which has many services and will not fit
> into one physical node.
>
> Is there any frame work that can be used to
>  schedule tasks based on the underlying hardware constraints like Network
> bandwidth ?
>
 Schedule the tasks based on their dependencies and proximity to each other
> in a cluster or a rack?
>
> Thanks & Regards,
> Pradeep
>

Re: Scheduling tasks based on dependancy

Posted by Sharma Podila <sp...@netflix.com>.
Hi Pradeep,

We augment the mesos-slave command line on each agent to report the
available network bandwidth in Mbps. For example, the agents that have
1Gbps bandwidth have this additional custom resources (--resources command
line option) set: "network:1024". This shows up in the offers as a resource
with name "network" and value "1024", which can be used to assign. Similar
to how memory is assigned. That is, if you launch one task that requires
"network" resource of "100" value, that is, it is asking for 100 Mbps n/w
bandwidth, the next offer from Mesos will have network resource value of
924 (1024 - 100).
is this what you were asking for?

Sharma



On Tue, Oct 6, 2015 at 3:51 AM, Pradeep Kiruvale <pr...@gmail.com>
wrote:

> Hi Sharma,
>
> Is this how you collect the network info from the VMs?
>
> First you get the resource offers from the Mesos and then you collect the
> network bandwidth info and then you use that for assigning for your tasks?
> Or
> The mesos-slave collects the resource information? But I don't see any
> code to that and also the existing mesos-slave does not collects these
> resource information by itself.
>
> Am I missing something here?
>
> Regards,
> Pradeep
>
> On 5 October 2015 at 18:28, Sharma Podila <sp...@netflix.com> wrote:
>
>> Pradeep,
>>
>> We recently open sourced Fenzo <https://github.com/Netflix/Fenzo> (wiki
>> <https://github.com/Netflix/Fenzo/wiki>) to handle these scenarios. We
>> add a custom attribute for network bandwidth for each agent's "mesos-slave"
>> command line. And we have Fenzo assign resources to tasks based on CPU,
>> memory, disk, ports, and network bandwidth requirements. With Fenzo you can
>> define affinity, locality, and any other custom scheduling objectives using
>> plugins. Some of the plugins are already built in. It is also easy to add
>> additional plugins to cover other objectives you care about.
>>
>> "Dependencies" can mean multiple things. Do you mean dependencies on
>> certain attributes of resources/agents? Dependencies on where other tasks
>> are assigned? All of these are covered. However, if you mean workflow type
>> of dependencies on completion of other tasks, then, there are no built in
>> plugins. You could write one using Fenzo. It is also common for such
>> workflow dependencies to be covered by an entity external to the scheduler.
>> Both techniques can be made to work.
>>
>> Fenzo has the concept of hard Vs soft constraints. You could specify, for
>> example, resource affinity and/or task locality as a soft constraint or a
>> hard constraint. See the wiki docs link I provided above for details.
>>
>> Sharma
>>
>>
>> On Mon, Oct 5, 2015 at 8:21 AM, Pradeep Kiruvale <
>> pradeepkiruvale@gmail.com> wrote:
>>
>>> Hi All,
>>>
>>> Are there any frameworks that exists with the Mesos to schedule the
>>> bigger apps?
>>> I mean to say scheduling a app which has many services and will not fit
>>> into one physical node.
>>>
>>> Is there any frame work that can be used to
>>>  schedule tasks based on the underlying hardware constraints like
>>> Network bandwidth ?
>>>  Schedule the tasks based on their dependencies and proximity to each
>>> other in a cluster or a rack?
>>>
>>> Thanks & Regards,
>>> Pradeep
>>>
>>
>>
>

Re: Scheduling tasks based on dependancy

Posted by Pradeep Kiruvale <pr...@gmail.com>.
Hi Sharma,

Is this how you collect the network info from the VMs?

First you get the resource offers from the Mesos and then you collect the
network bandwidth info and then you use that for assigning for your tasks?
Or
The mesos-slave collects the resource information? But I don't see any code
to that and also the existing mesos-slave does not collects these resource
information by itself.

Am I missing something here?

Regards,
Pradeep

On 5 October 2015 at 18:28, Sharma Podila <sp...@netflix.com> wrote:

> Pradeep,
>
> We recently open sourced Fenzo <https://github.com/Netflix/Fenzo> (wiki
> <https://github.com/Netflix/Fenzo/wiki>) to handle these scenarios. We
> add a custom attribute for network bandwidth for each agent's "mesos-slave"
> command line. And we have Fenzo assign resources to tasks based on CPU,
> memory, disk, ports, and network bandwidth requirements. With Fenzo you can
> define affinity, locality, and any other custom scheduling objectives using
> plugins. Some of the plugins are already built in. It is also easy to add
> additional plugins to cover other objectives you care about.
>
> "Dependencies" can mean multiple things. Do you mean dependencies on
> certain attributes of resources/agents? Dependencies on where other tasks
> are assigned? All of these are covered. However, if you mean workflow type
> of dependencies on completion of other tasks, then, there are no built in
> plugins. You could write one using Fenzo. It is also common for such
> workflow dependencies to be covered by an entity external to the scheduler.
> Both techniques can be made to work.
>
> Fenzo has the concept of hard Vs soft constraints. You could specify, for
> example, resource affinity and/or task locality as a soft constraint or a
> hard constraint. See the wiki docs link I provided above for details.
>
> Sharma
>
>
> On Mon, Oct 5, 2015 at 8:21 AM, Pradeep Kiruvale <
> pradeepkiruvale@gmail.com> wrote:
>
>> Hi All,
>>
>> Are there any frameworks that exists with the Mesos to schedule the
>> bigger apps?
>> I mean to say scheduling a app which has many services and will not fit
>> into one physical node.
>>
>> Is there any frame work that can be used to
>>  schedule tasks based on the underlying hardware constraints like Network
>> bandwidth ?
>>  Schedule the tasks based on their dependencies and proximity to each
>> other in a cluster or a rack?
>>
>> Thanks & Regards,
>> Pradeep
>>
>
>

Re: Scheduling tasks based on dependancy

Posted by Pradeep Kiruvale <pr...@gmail.com>.
Hi Sharma,

Awesome!. This is what I was looking for. Thanks for the reply.

I will have a look for more info in wiki.

Regards,
Pradeep

On 5 October 2015 at 18:28, Sharma Podila <sp...@netflix.com> wrote:

> Pradeep,
>
> We recently open sourced Fenzo <https://github.com/Netflix/Fenzo> (wiki
> <https://github.com/Netflix/Fenzo/wiki>) to handle these scenarios. We
> add a custom attribute for network bandwidth for each agent's "mesos-slave"
> command line. And we have Fenzo assign resources to tasks based on CPU,
> memory, disk, ports, and network bandwidth requirements. With Fenzo you can
> define affinity, locality, and any other custom scheduling objectives using
> plugins. Some of the plugins are already built in. It is also easy to add
> additional plugins to cover other objectives you care about.
>
> "Dependencies" can mean multiple things. Do you mean dependencies on
> certain attributes of resources/agents? Dependencies on where other tasks
> are assigned? All of these are covered. However, if you mean workflow type
> of dependencies on completion of other tasks, then, there are no built in
> plugins. You could write one using Fenzo. It is also common for such
> workflow dependencies to be covered by an entity external to the scheduler.
> Both techniques can be made to work.
>
> Fenzo has the concept of hard Vs soft constraints. You could specify, for
> example, resource affinity and/or task locality as a soft constraint or a
> hard constraint. See the wiki docs link I provided above for details.
>
> Sharma
>
>
> On Mon, Oct 5, 2015 at 8:21 AM, Pradeep Kiruvale <
> pradeepkiruvale@gmail.com> wrote:
>
>> Hi All,
>>
>> Are there any frameworks that exists with the Mesos to schedule the
>> bigger apps?
>> I mean to say scheduling a app which has many services and will not fit
>> into one physical node.
>>
>> Is there any frame work that can be used to
>>  schedule tasks based on the underlying hardware constraints like Network
>> bandwidth ?
>>  Schedule the tasks based on their dependencies and proximity to each
>> other in a cluster or a rack?
>>
>> Thanks & Regards,
>> Pradeep
>>
>
>

Re: Scheduling tasks based on dependancy

Posted by Sharma Podila <sp...@netflix.com>.
Pradeep,

We recently open sourced Fenzo <https://github.com/Netflix/Fenzo> (wiki
<https://github.com/Netflix/Fenzo/wiki>) to handle these scenarios. We add
a custom attribute for network bandwidth for each agent's "mesos-slave"
command line. And we have Fenzo assign resources to tasks based on CPU,
memory, disk, ports, and network bandwidth requirements. With Fenzo you can
define affinity, locality, and any other custom scheduling objectives using
plugins. Some of the plugins are already built in. It is also easy to add
additional plugins to cover other objectives you care about.

"Dependencies" can mean multiple things. Do you mean dependencies on
certain attributes of resources/agents? Dependencies on where other tasks
are assigned? All of these are covered. However, if you mean workflow type
of dependencies on completion of other tasks, then, there are no built in
plugins. You could write one using Fenzo. It is also common for such
workflow dependencies to be covered by an entity external to the scheduler.
Both techniques can be made to work.

Fenzo has the concept of hard Vs soft constraints. You could specify, for
example, resource affinity and/or task locality as a soft constraint or a
hard constraint. See the wiki docs link I provided above for details.

Sharma


On Mon, Oct 5, 2015 at 8:21 AM, Pradeep Kiruvale <pr...@gmail.com>
wrote:

> Hi All,
>
> Are there any frameworks that exists with the Mesos to schedule the bigger
> apps?
> I mean to say scheduling a app which has many services and will not fit
> into one physical node.
>
> Is there any frame work that can be used to
>  schedule tasks based on the underlying hardware constraints like Network
> bandwidth ?
>  Schedule the tasks based on their dependencies and proximity to each
> other in a cluster or a rack?
>
> Thanks & Regards,
> Pradeep
>

Re: Scheduling tasks based on dependancy

Posted by Olaf Magnetic <ol...@magnetic.io>.
Hi Pradeep,

Our opensource framework VAMP (www.vamp.io) might help you. It's possible to define entire topologies of services, and has drivers to run on mesos/marathon. 

Network bandwidth detection is not a current feature, but as our system is modular and open all kinds of metrics and actions/workflows can be monitored for and acted upon. We use elastic search as the data store.

Let me know if I can do anything else for you!

Best, Olaf 


> On 05 Oct 2015, at 17:21, Pradeep Kiruvale <pr...@gmail.com> wrote:
> 
> Hi All,
> 
> Are there any frameworks that exists with the Mesos to schedule the bigger apps?
> I mean to say scheduling a app which has many services and will not fit into one physical node.
> 
> Is there any frame work that can be used to
>  schedule tasks based on the underlying hardware constraints like Network bandwidth ?
>  Schedule the tasks based on their dependencies and proximity to each other in a cluster or a rack?
> 
> Thanks & Regards,
> Pradeep

RE: Scheduling tasks based on dependancy

Posted by "Clarke, Trevor" <tc...@ball.com>.
Take a look at kubernetes.



https://github.com/mesosphere/kubernetes-mesos

________________________________
From: Pradeep Kiruvale [pradeepkiruvale@gmail.com]
Sent: Monday, October 05, 2015 11:21 AM
To: user; dev@mesos.apache.org
Subject: Scheduling tasks based on dependancy

Hi All,

Are there any frameworks that exists with the Mesos to schedule the bigger apps?
I mean to say scheduling a app which has many services and will not fit into one physical node.

Is there any frame work that can be used to
 schedule tasks based on the underlying hardware constraints like Network bandwidth ?
 Schedule the tasks based on their dependencies and proximity to each other in a cluster or a rack?

Thanks & Regards,
Pradeep



This message and any enclosures are intended only for the addressee.  Please 
notify the sender by email if you are not the intended recipient.  If you are 
not the intended recipient, you may not use, copy, disclose, or distribute this 
message or its contents or enclosures to any other person and any such actions 
may be unlawful.  Ball reserves the right to monitor and review all messages 
and enclosures sent to or from this email address.

Re: Scheduling tasks based on dependancy

Posted by Olaf Magnetic <ol...@magnetic.io>.
Hi Pradeep,

Our opensource framework VAMP (www.vamp.io) might help you. It's possible to define entire topologies of services, and has drivers to run on mesos/marathon. 

Network bandwidth detection is not a current feature, but as our system is modular and open all kinds of metrics and actions/workflows can be monitored for and acted upon. We use elastic search as the data store.

Let me know if I can do anything else for you!

Best, Olaf 


> On 05 Oct 2015, at 17:21, Pradeep Kiruvale <pr...@gmail.com> wrote:
> 
> Hi All,
> 
> Are there any frameworks that exists with the Mesos to schedule the bigger apps?
> I mean to say scheduling a app which has many services and will not fit into one physical node.
> 
> Is there any frame work that can be used to
>  schedule tasks based on the underlying hardware constraints like Network bandwidth ?
>  Schedule the tasks based on their dependencies and proximity to each other in a cluster or a rack?
> 
> Thanks & Regards,
> Pradeep