Search in sources :

Example 1 with CompositeInterceptor

use of org.apache.myriad.scheduler.yarn.interceptor.CompositeInterceptor in project incubator-myriad by apache.

the class MyriadCapacityScheduler method setRMContext.

/**
 * Register an event handler that receives {@link RMNodeEvent} events.
 * This event handler is registered ahead of RM's own event handler for RMNodeEvents.
 * For e.g. myriad can inspect a node's HB (RMNodeStatusEvent) before the HB is handled by
 * RM and the scheduler.
 *
 * @param rmContext
 */
@Override
public synchronized void setRMContext(RMContext rmContext) {
    this.rmContext = rmContext;
    this.yarnSchedulerInterceptor = new CompositeInterceptor();
    rmNodeEventHandler = new RMNodeEventHandler(yarnSchedulerInterceptor, rmContext);
    rmContext.getDispatcher().register(RMNodeEventType.class, rmNodeEventHandler);
    super.setRMContext(rmContext);
}
Also used : CompositeInterceptor(org.apache.myriad.scheduler.yarn.interceptor.CompositeInterceptor)

Example 2 with CompositeInterceptor

use of org.apache.myriad.scheduler.yarn.interceptor.CompositeInterceptor in project incubator-myriad by apache.

the class MyriadOperationsTest method initialize.

private MyriadOperations initialize() throws Exception {
    resetStoreState();
    SchedulerState sState = TestObjectFactory.getSchedulerState(cfg, "tmp/myriad-operations-test");
    sState.setFrameworkId(FrameworkID.newBuilder().setValue("mock-framework").build());
    AbstractYarnScheduler<FiCaSchedulerApp, FiCaSchedulerNode> scheduler = TestObjectFactory.getYarnScheduler();
    MyriadDriverManager manager = TestObjectFactory.getMyriadDriverManager();
    MyriadWebServer webServer = TestObjectFactory.getMyriadWebServer(cfg);
    CompositeInterceptor registry = new CompositeInterceptor();
    LeastAMNodesFirstPolicy policy = new LeastAMNodesFirstPolicy(registry, scheduler, sState);
    manager.startDriver();
    return new MyriadOperations(cfg, sState, policy, manager, webServer, generateRMContext(scheduler));
}
Also used : CompositeInterceptor(org.apache.myriad.scheduler.yarn.interceptor.CompositeInterceptor) MyriadWebServer(org.apache.myriad.webapp.MyriadWebServer) SchedulerState(org.apache.myriad.state.SchedulerState) FiCaSchedulerNode(org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerNode) FiCaSchedulerApp(org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp) LeastAMNodesFirstPolicy(org.apache.myriad.policy.LeastAMNodesFirstPolicy)

Example 3 with CompositeInterceptor

use of org.apache.myriad.scheduler.yarn.interceptor.CompositeInterceptor in project incubator-myriad by apache.

the class MyriadFairScheduler method setRMContext.

/**
 * Register an event handler that receives {@link RMNodeEvent} events.
 * This event handler is registered ahead of RM's own event handler for RMNodeEvents.
 * For e.g. myriad can inspect a node's HB (RMNodeStatusEvent) before the HB is handled by
 * RM and the scheduler.
 *
 * @param rmContext
 */
@Override
public synchronized void setRMContext(RMContext rmContext) {
    this.rmContext = rmContext;
    this.yarnSchedulerInterceptor = new CompositeInterceptor();
    rmNodeEventHandler = new RMNodeEventHandler(yarnSchedulerInterceptor, rmContext);
    rmContext.getDispatcher().register(RMNodeEventType.class, rmNodeEventHandler);
    super.setRMContext(rmContext);
}
Also used : CompositeInterceptor(org.apache.myriad.scheduler.yarn.interceptor.CompositeInterceptor)

Example 4 with CompositeInterceptor

use of org.apache.myriad.scheduler.yarn.interceptor.CompositeInterceptor 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 5 with CompositeInterceptor

use of org.apache.myriad.scheduler.yarn.interceptor.CompositeInterceptor 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

CompositeInterceptor (org.apache.myriad.scheduler.yarn.interceptor.CompositeInterceptor)6 SystemMetricsPublisher (org.apache.hadoop.yarn.server.resourcemanager.metrics.SystemMetricsPublisher)2 FSSchedulerNode (org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSSchedulerNode)2 MyriadConfiguration (org.apache.myriad.configuration.MyriadConfiguration)2 MockSchedulerDriver (org.apache.myriad.scheduler.MockSchedulerDriver)2 MyriadDriver (org.apache.myriad.scheduler.MyriadDriver)2 TaskUtils (org.apache.myriad.scheduler.TaskUtils)2 MyriadFairScheduler (org.apache.myriad.scheduler.yarn.MyriadFairScheduler)2 MockRMContext (org.apache.myriad.state.MockRMContext)2 Before (org.junit.Before)2 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 FiCaSchedulerApp (org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp)1 FiCaSchedulerNode (org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerNode)1 LeastAMNodesFirstPolicy (org.apache.myriad.policy.LeastAMNodesFirstPolicy)1 SchedulerState (org.apache.myriad.state.SchedulerState)1 MyriadWebServer (org.apache.myriad.webapp.MyriadWebServer)1