-
Notifications
You must be signed in to change notification settings - Fork 601
Ability to inject IScheduler instance in SchedulerMain #131
Comments
@ashvina - We did a recent checkin where the scheduler architecture is streamlined now. Everything about a cluster is read from a bunch of config files. Try the following checkout the new master and run
This will install the client of heron at your home directory ~/.heron and the executable heron-cli3 in your ~/bin will have a link ~/.heron/bin/heron-cli3. This installation has already a bunch of configs built in for the local scheduler and they can be found in This config is available from the client when you launch and the entire config is carried with the topology package and made available in the containers as well. In the container, they will be stored in
and several parse routines are available to read those files SchedulerMain also reads from those files and you can make an instance of the IScheduler class. |
With local installation, you can run some topologies right away using the examples using the following command
You won't be able to see the output unless you can get to the logs. The logs are in You can kill the topology using the following command
Let me know if you run into issues. |
We are working on updating the documentation for the new config. |
Thanks Karthik. I will look forward to the updated docs. This seems to be a major change. A number of classes have been removed (for e.g. IConfigLoader). Can I assume that any new scheduler should be added to newscheduler and the old scheduler code is outdated and should be ignored? |
Yes. newscheduler is the way forward. It provides a lot of flexibility and clean configuration. |
This issue is not applicable anymore. |
I am developing a custom scheduler for Heron and looking at MesosScheduler as an example. As I understand Launcher launches instance of Scheduler. In my case Scheduler is a service running in its own container to serve topology management requests like deactivate. The instance launched by the Launcher has context information to communicate with the cluster resource manager (RM). Once the Scheduler starts I am invoking SchedulerMain.runScheduler() to start SchedulerServer. I notice that this method is creating a new instance of Scheduler. Is this necessary? If the caller of runScheduler could provide the instance of Scheduler, then the Scheduler can retain some of the context information provided by Launcher.
The text was updated successfully, but these errors were encountered: