Search in sources :

Example 1 with TaskUtils

use of org.apache.myriad.scheduler.TaskUtils in project incubator-myriad by apache.

the class Main method initProfiles.

private void initProfiles(Injector injector) {
    LOGGER.info("Initializing Profiles");
    ServiceProfileManager profileManager = injector.getInstance(ServiceProfileManager.class);
    Map<String, Map<String, String>> profiles = injector.getInstance(MyriadConfiguration.class).getProfiles();
    TaskUtils taskUtils = injector.getInstance(TaskUtils.class);
    if (MapUtils.isNotEmpty(profiles)) {
        for (Map.Entry<String, Map<String, String>> profile : profiles.entrySet()) {
            Map<String, String> profileResourceMap = profile.getValue();
            if (MapUtils.isNotEmpty(profiles) && profileResourceMap.containsKey("cpu") && profileResourceMap.containsKey("mem")) {
                Long cpu = Long.parseLong(profileResourceMap.get("cpu"));
                Long mem = Long.parseLong(profileResourceMap.get("mem"));
                ServiceResourceProfile serviceProfile = new ExtendedResourceProfile(new NMProfile(profile.getKey(), cpu, mem), taskUtils.getNodeManagerCpus(), taskUtils.getNodeManagerMemory(), taskUtils.getNodeManagerPorts());
                profileManager.add(serviceProfile);
            } else {
                LOGGER.error("Invalid definition for profile: " + profile.getKey());
            }
        }
    }
}
Also used : ServiceProfileManager(org.apache.myriad.scheduler.ServiceProfileManager) ExtendedResourceProfile(org.apache.myriad.scheduler.ExtendedResourceProfile) TaskUtils(org.apache.myriad.scheduler.TaskUtils) NMProfile(org.apache.myriad.scheduler.NMProfile) MyriadConfiguration(org.apache.myriad.configuration.MyriadConfiguration) ServiceResourceProfile(org.apache.myriad.scheduler.ServiceResourceProfile) Map(java.util.Map)

Example 2 with TaskUtils

use of org.apache.myriad.scheduler.TaskUtils in project incubator-myriad by apache.

the class NMHeartBeatHandlerTest method setUp.

@Override
@Before
public void setUp() throws Exception {
    super.setUp();
    this.baseStateStoreDirectory = "/tmp/nm-heartbeat-handler-test";
    context = new MockRMContext();
    context.setDispatcher(TestObjectFactory.getMockDispatcher());
    context.setSystemMetricsPublisher(new SystemMetricsPublisher());
    profileZero = TestObjectFactory.getServiceResourceProfile("zero", Double.valueOf(0.0), Double.valueOf(0.0), Long.valueOf(0), Long.valueOf(0));
    profileSmall = TestObjectFactory.getServiceResourceProfile("small", Double.valueOf(2.0), Double.valueOf(2048.0), Long.valueOf(1), Long.valueOf(1024));
    nodeOne = TestObjectFactory.getRMNode("localhost-one", 8800, Resource.newInstance(0, 0));
    nodeTwo = TestObjectFactory.getRMNode("localhost-two", 8800, Resource.newInstance(1024, 2));
    sNodeOne = new FSSchedulerNode(nodeOne, false);
    sNodeTwo = new FSSchedulerNode(nodeTwo, false);
    nodeTaskOne = TestObjectFactory.getNodeTask("localhost-one", profileZero);
    nodeTaskTwo = TestObjectFactory.getNodeTask("localhost-two", profileSmall);
    ConcurrentMap<NodeId, RMNode> rmNodes = new ConcurrentHashMap<NodeId, RMNode>();
    rmNodes.put(nodeOne.getNodeID(), nodeOne);
    rmNodes.put(nodeTwo.getNodeID(), nodeTwo);
    context.setRMNodes(rmNodes);
    store = new NodeStore();
    store.add(sNodeOne);
    store.add(sNodeTwo);
    MyriadDriver driver = TestObjectFactory.getMyriadDriver(new MockSchedulerDriver());
    olManager = new OfferLifecycleManager(store, driver);
    state = TestObjectFactory.getSchedulerState(new MyriadConfiguration(), "/tmp/nm-heartbeat-handler-test");
    state.addNodes(Lists.newArrayList(nodeTaskOne, nodeTaskTwo));
    MyriadFairScheduler scheduler = TestObjectFactory.getMyriadFairScheduler(context);
    scheduler.addNode(sNodeOne);
    scheduler.addNode(sNodeTwo);
    manager = new YarnNodeCapacityManager(new CompositeInterceptor(), scheduler, context, driver, olManager, store, state, new TaskUtils(this.cfg));
    handler = new NMHeartBeatHandler(new CompositeInterceptor(), scheduler, driver, manager, olManager, store, state, cfg.getNodeManagerConfiguration());
}
Also used : MyriadDriver(org.apache.myriad.scheduler.MyriadDriver) CompositeInterceptor(org.apache.myriad.scheduler.yarn.interceptor.CompositeInterceptor) TaskUtils(org.apache.myriad.scheduler.TaskUtils) MockRMContext(org.apache.myriad.state.MockRMContext) MyriadFairScheduler(org.apache.myriad.scheduler.yarn.MyriadFairScheduler) FSSchedulerNode(org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSSchedulerNode) RMNode(org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNode) MyriadConfiguration(org.apache.myriad.configuration.MyriadConfiguration) SystemMetricsPublisher(org.apache.hadoop.yarn.server.resourcemanager.metrics.SystemMetricsPublisher) NodeId(org.apache.hadoop.yarn.api.records.NodeId) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) MockSchedulerDriver(org.apache.myriad.scheduler.MockSchedulerDriver) Before(org.junit.Before)

Example 3 with TaskUtils

use of org.apache.myriad.scheduler.TaskUtils in project incubator-myriad by apache.

the class YarnNodeCapacityManagerTest method setUp.

@Override
@Before
public void setUp() throws Exception {
    super.setUp();
    this.baseStateStoreDirectory = "/tmp/yarn-node-capacity-manager-test";
    context = new MockRMContext();
    context.setDispatcher(TestObjectFactory.getMockDispatcher());
    context.setSystemMetricsPublisher(new SystemMetricsPublisher());
    nodeOne = TestObjectFactory.getRMNode("localhost-one", 8800, Resource.newInstance(2048, 4));
    nodeTwo = TestObjectFactory.getRMNode("localhost-two", 8800, Resource.newInstance(1024, 2));
    sNodeOne = new FSSchedulerNode(nodeOne, false);
    sNodeTwo = new FSSchedulerNode(nodeTwo, false);
    containerOne = TestObjectFactory.getRMContainer(nodeOne, context, 1, 2, 1024);
    store = new NodeStore();
    store.add(sNodeOne);
    store.add(sNodeTwo);
    MyriadDriver driver = TestObjectFactory.getMyriadDriver(new MockSchedulerDriver());
    olManager = new OfferLifecycleManager(store, driver);
    state = TestObjectFactory.getSchedulerState(new MyriadConfiguration(), "/tmp/yarn-node-capacity-manager-test");
    MyriadFairScheduler scheduler = TestObjectFactory.getMyriadFairScheduler(context);
    scheduler.addNode(sNodeOne);
    scheduler.addNode(sNodeTwo);
    manager = new YarnNodeCapacityManager(new CompositeInterceptor(), scheduler, context, driver, olManager, store, state, new TaskUtils(this.cfg));
}
Also used : MyriadDriver(org.apache.myriad.scheduler.MyriadDriver) CompositeInterceptor(org.apache.myriad.scheduler.yarn.interceptor.CompositeInterceptor) TaskUtils(org.apache.myriad.scheduler.TaskUtils) MockRMContext(org.apache.myriad.state.MockRMContext) FSSchedulerNode(org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSSchedulerNode) MyriadConfiguration(org.apache.myriad.configuration.MyriadConfiguration) MyriadFairScheduler(org.apache.myriad.scheduler.yarn.MyriadFairScheduler) SystemMetricsPublisher(org.apache.hadoop.yarn.server.resourcemanager.metrics.SystemMetricsPublisher) MockSchedulerDriver(org.apache.myriad.scheduler.MockSchedulerDriver) Before(org.junit.Before)

Aggregations

MyriadConfiguration (org.apache.myriad.configuration.MyriadConfiguration)3 TaskUtils (org.apache.myriad.scheduler.TaskUtils)3 SystemMetricsPublisher (org.apache.hadoop.yarn.server.resourcemanager.metrics.SystemMetricsPublisher)2 FSSchedulerNode (org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSSchedulerNode)2 MockSchedulerDriver (org.apache.myriad.scheduler.MockSchedulerDriver)2 MyriadDriver (org.apache.myriad.scheduler.MyriadDriver)2 MyriadFairScheduler (org.apache.myriad.scheduler.yarn.MyriadFairScheduler)2 CompositeInterceptor (org.apache.myriad.scheduler.yarn.interceptor.CompositeInterceptor)2 MockRMContext (org.apache.myriad.state.MockRMContext)2 Before (org.junit.Before)2 Map (java.util.Map)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 NodeId (org.apache.hadoop.yarn.api.records.NodeId)1 RMNode (org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNode)1 ExtendedResourceProfile (org.apache.myriad.scheduler.ExtendedResourceProfile)1 NMProfile (org.apache.myriad.scheduler.NMProfile)1 ServiceProfileManager (org.apache.myriad.scheduler.ServiceProfileManager)1 ServiceResourceProfile (org.apache.myriad.scheduler.ServiceResourceProfile)1