MYRIAD-170 Myriad initialization fails with "parameter 5 of org.apachâ¦
â¦e.myriad.scheduler.MyriadOperations.<init>() is not @Nullable Myriad State store is no longer passed using Guice We now get state store from RMContext. Tried using HA disabled in yarn and myriad. Was able to run CGS and FGS NM's Tried using HA enabled in yarn and myriad. Was able to run CGS and FGS NM's This closes: #35 Review: https://github.com/apache/incubator-myriad/pull/35 Project: http://git-wip-us.apache.org/repos/asf/incubator-myriad/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-myriad/commit/343a11ac Tree: http://git-wip-us.apache.org/repos/asf/incubator-myriad/tree/343a11ac Diff: http://git-wip-us.apache.org/repos/asf/incubator-myriad/diff/343a11ac Branch: refs/heads/master Commit: 343a11aceb0fc9b5c84f46bba43b2423643eff6f Parents: 70b95c6 Author: Swapnil Daingade <sdaing...@maprtech.com> Authored: Sun Nov 8 18:50:54 2015 -0800 Committer: Santosh Marella <mare...@gmail.com> Committed: Sun Nov 8 18:50:54 2015 -0800 ---------------------------------------------------------------------- .../java/org/apache/myriad/MyriadModule.java | 4 +--- .../myriad/scheduler/MyriadOperations.java | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-myriad/blob/343a11ac/myriad-scheduler/src/main/java/org/apache/myriad/MyriadModule.java ---------------------------------------------------------------------- diff --git a/myriad-scheduler/src/main/java/org/apache/myriad/MyriadModule.java b/myriad-scheduler/src/main/java/org/apache/myriad/MyriadModule.java index 5896e93..41abb9a 100644 --- a/myriad-scheduler/src/main/java/org/apache/myriad/MyriadModule.java +++ b/myriad-scheduler/src/main/java/org/apache/myriad/MyriadModule.java @@ -146,9 +146,7 @@ public class MyriadModule extends AbstractModule { return new SchedulerState(myriadStateStore); } - @Provides - @Singleton - MyriadStateStore providesMyriadStateStore() { + private MyriadStateStore providesMyriadStateStore() { // TODO (sdaingade) Read the implementation class from yml // once multiple implementations are available. if (rmContext.getStateStore() instanceof MyriadStateStore) { http://git-wip-us.apache.org/repos/asf/incubator-myriad/blob/343a11ac/myriad-scheduler/src/main/java/org/apache/myriad/scheduler/MyriadOperations.java ---------------------------------------------------------------------- diff --git a/myriad-scheduler/src/main/java/org/apache/myriad/scheduler/MyriadOperations.java b/myriad-scheduler/src/main/java/org/apache/myriad/scheduler/MyriadOperations.java index c662902..2250eee 100644 --- a/myriad-scheduler/src/main/java/org/apache/myriad/scheduler/MyriadOperations.java +++ b/myriad-scheduler/src/main/java/org/apache/myriad/scheduler/MyriadOperations.java @@ -24,6 +24,8 @@ import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; + +import org.apache.hadoop.yarn.server.resourcemanager.RMContext; import org.apache.mesos.Protos; import org.apache.mesos.Protos.Status; import org.apache.myriad.configuration.MyriadBadConfigurationException; @@ -56,13 +58,15 @@ public class MyriadOperations { @Inject public MyriadOperations(MyriadConfiguration cfg, SchedulerState schedulerState, NodeScaleDownPolicy nodeScaleDownPolicy, MyriadDriverManager driverManager, - MyriadWebServer myriadWebServer, MyriadStateStore myriadStateStore) { + MyriadWebServer myriadWebServer, RMContext rmContext) { this.cfg = cfg; this.schedulerState = schedulerState; this.nodeScaleDownPolicy = nodeScaleDownPolicy; this.driverManager = driverManager; this.myriadWebServer = myriadWebServer; - this.myriadStateStore = myriadStateStore; + if (rmContext.getStateStore() instanceof MyriadStateStore) { + myriadStateStore = (MyriadStateStore) rmContext.getStateStore(); + } } public void flexUpCluster(ServiceResourceProfile serviceResourceProfile, int instances, Constraint constraint) { @@ -277,11 +281,13 @@ public class MyriadOperations { LOGGER.info("Failed to shutdown Myriad webserver: " + e.getMessage()); } - try { - myriadStateStore.removeMyriadState(); - LOGGER.info("Myriad State store was removed successfully."); - } catch (Exception e) { - LOGGER.info("Failed to remove Myriad state store: " + e.getMessage()); + if (myriadStateStore != null) { + try { + myriadStateStore.removeMyriadState(); + LOGGER.info("Myriad State store was removed successfully."); + } catch (Exception e) { + LOGGER.info("Failed to remove Myriad state store: " + e.getMessage()); + } } } }