private WMFullResourcePlan createTestResourcePlan() { WMFullResourcePlan resourcePlan; WMPool pool = new WMPool("testDefault", "llap"); pool.setAllocFraction(1f); pool.setQueryParallelism(1); resourcePlan = new WMFullResourcePlan( new WMResourcePlan("testDefault"), Lists.newArrayList(pool)); resourcePlan.getPlan().setDefaultPoolPath("testDefault"); return resourcePlan; }
private WMFullResourcePlan createRP(String name, Integer parallelism, String defaultPoolPath) { WMResourcePlan rp = new WMResourcePlan(name); rp.setStatus(WMResourcePlanStatus.ACTIVE); if (parallelism != null) { rp.setQueryParallelism(parallelism); } if (defaultPoolPath != null) { rp.setDefaultPoolPath(defaultPoolPath); } WMFullResourcePlan fullRp = new WMFullResourcePlan(rp, new ArrayList<>()); return fullRp; }
private static WMFullResourcePlan createDummyPlan(int numSessions) { WMFullResourcePlan plan = new WMFullResourcePlan(new WMResourcePlan("rp"), Lists.newArrayList(pool("llap", numSessions, 1.0f))); plan.getPlan().setDefaultPoolPath("llap"); return plan; }
unsetDefaultPoolPath(); } else { setDefaultPoolPath((String)value);
private WMResourcePlan fromMResourcePlan(MWMResourcePlan mplan) { if (mplan == null) { return null; } WMResourcePlan rp = new WMResourcePlan(); rp.setName(mplan.getName()); rp.setNs(mplan.getNs()); rp.setStatus(WMResourcePlanStatus.valueOf(mplan.getStatus().name())); if (mplan.getQueryParallelism() != null) { rp.setQueryParallelism(mplan.getQueryParallelism()); } if (mplan.getDefaultPool() != null) { rp.setDefaultPoolPath(mplan.getDefaultPool().getPath()); } return rp; }
MockQam qam = new MockQam(); WMFullResourcePlan plan = new WMFullResourcePlan(plan(), Lists.newArrayList(pool("A", 1, 1f))); plan.getPlan().setDefaultPoolPath("A"); final WorkloadManager wm = new WorkloadManagerForTest("test", conf, qam, plan); wm.start();
@Test(timeout=10000) public void testClusterChange() throws Exception { final HiveConf conf = createConf(); MockQam qam = new MockQam(); WMFullResourcePlan plan = new WMFullResourcePlan(plan(), Lists.newArrayList(pool("A", 2, 1f))); plan.getPlan().setDefaultPoolPath("A"); final WorkloadManager wm = new WorkloadManagerForTest("test", conf, qam, plan); wm.start(); WmTezSession session1 = (WmTezSession) wm.getSession(null, mappingInput("A"), conf), session2 = (WmTezSession) wm.getSession(null, mappingInput("A"), conf); assertEquals(0.5, session1.getClusterFraction(), EPSILON); assertEquals(0.5, session2.getClusterFraction(), EPSILON); qam.assertWasCalledAndReset(); // If cluster info changes, qam should be called with the same fractions. wm.notifyOfClusterStateChange(); assertEquals(0.5, session1.getClusterFraction(), EPSILON); assertEquals(0.5, session2.getClusterFraction(), EPSILON); qam.assertWasCalledAndReset(); session1.returnToSessionManager(); session2.returnToSessionManager(); }
WMFullResourcePlan plan = new WMFullResourcePlan( plan(), Lists.newArrayList(pool("A", 3, 1f, "fair"))); plan.getPlan().setDefaultPoolPath("A"); final WorkloadManager wm = new WorkloadManagerForTest("test", conf, qam, plan); wm.start(); plan.getPlan().setDefaultPoolPath("A"); wm.updateResourcePlanAsync(plan).get(); assertEquals(1f, sessionA1.getClusterFraction(), EPSILON);
private WMFullResourcePlan createTestResourcePlan() { WMFullResourcePlan resourcePlan; WMPool pool = new WMPool("testDefault", "llap"); pool.setAllocFraction(1f); pool.setQueryParallelism(1); resourcePlan = new WMFullResourcePlan( new WMResourcePlan("testDefault"), Lists.newArrayList(pool)); resourcePlan.getPlan().setDefaultPoolPath("testDefault"); return resourcePlan; }
unsetDefaultPoolPath(); } else { setDefaultPoolPath((String)value);
private WMResourcePlan fromMResourcePlan(MWMResourcePlan mplan) { if (mplan == null) { return null; } WMResourcePlan rp = new WMResourcePlan(); rp.setName(mplan.getName()); rp.setStatus(WMResourcePlanStatus.valueOf(mplan.getStatus().name())); if (mplan.getQueryParallelism() != null) { rp.setQueryParallelism(mplan.getQueryParallelism()); } if (mplan.getDefaultPool() != null) { rp.setDefaultPoolPath(mplan.getDefaultPool().getPath()); } return rp; }