Author: yhemanth
Date: Tue May 5 11:08:02 2009
New Revision: 771667
URL: http://svn.apache.org/viewvc?rev=771667&view=rev
Log:
HADOOP-5718. Remove the check for the default queue in capacity scheduler.
Contributed by Sreekanth Ramakrishnan.
Modified:
hadoop/core/branches/branch-0.20/ (props changed)
hadoop/core/branches/branch-0.20/CHANGES.txt
hadoop/core/branches/branch-0.20/src/contrib/capacity-scheduler/src/java/org/apache/hadoop/mapred/CapacityTaskScheduler.java
hadoop/core/branches/branch-0.20/src/contrib/capacity-scheduler/src/test/org/apache/hadoop/mapred/TestCapacityScheduler.java
Propchange: hadoop/core/branches/branch-0.20/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue May 5 11:08:02 2009
@@ -1,2 +1,2 @@
/hadoop/core/branches/branch-0.19:713112
-/hadoop/core/trunk:727001,727117,727191,727212,727217,727228,727255,727869,728187,729052,729987,732385,732572,732613,732777,732838,732869,733887,734870,734916,736426,738328,738697,740077,740157,741703,741762,743745,743816,743892,744894,745180,746010,746206,746227,746233,746274,746338,746902-746903,746925,746944,746968,746970,747279,747289,747802,748084,748090,748783,749262,749318,749863,750533,752073,752609,752834,752836,752913,752932,753112-753113,753346,754645,754847,754927,755035,755226,755348,755370,755418,755426,755790,755905,755938,755960,755986,755998,756352,757448,757624,757849,758156,759398,759932,760502,760783,761046,761482,761632,762216,762879,763107,763502,764967,765016,765809,765951,771607
+/hadoop/core/trunk:727001,727117,727191,727212,727217,727228,727255,727869,728187,729052,729987,732385,732572,732613,732777,732838,732869,733887,734870,734916,736426,738328,738697,740077,740157,741703,741762,743745,743816,743892,744894,745180,746010,746206,746227,746233,746274,746338,746902-746903,746925,746944,746968,746970,747279,747289,747802,748084,748090,748783,749262,749318,749863,750533,752073,752609,752834,752836,752913,752932,753112-753113,753346,754645,754847,754927,755035,755226,755348,755370,755418,755426,755790,755905,755938,755960,755986,755998,756352,757448,757624,757849,758156,759398,759932,760502,760783,761046,761482,761632,762216,762879,763107,763502,764967,765016,765809,765951,771607,771661
Modified: hadoop/core/branches/branch-0.20/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.20/CHANGES.txt?rev=771667&r1=771666&r2=771667&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.20/CHANGES.txt (original)
+++ hadoop/core/branches/branch-0.20/CHANGES.txt Tue May 5 11:08:02 2009
@@ -40,6 +40,9 @@
was used and user closed a output stream without writing any data.
(Zheng Shao via dhruba)
+ HADOOP-5718. Remove the check for the default queue in capacity scheduler.
+ (Sreekanth Ramakrishnan via yhemanth)
+
Release 0.20.0 - 2009-04-15
INCOMPATIBLE CHANGES
Modified:
hadoop/core/branches/branch-0.20/src/contrib/capacity-scheduler/src/java/org/apache/hadoop/mapred/CapacityTaskScheduler.java
URL:
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.20/src/contrib/capacity-scheduler/src/java/org/apache/hadoop/mapred/CapacityTaskScheduler.java?rev=771667&r1=771666&r2=771667&view=diff
==============================================================================
---
hadoop/core/branches/branch-0.20/src/contrib/capacity-scheduler/src/java/org/apache/hadoop/mapred/CapacityTaskScheduler.java
(original)
+++
hadoop/core/branches/branch-0.20/src/contrib/capacity-scheduler/src/java/org/apache/hadoop/mapred/CapacityTaskScheduler.java
Tue May 5 11:08:02 2009
@@ -592,9 +592,7 @@
private int prevMapClusterCapacity = 0;
private int prevReduceClusterCapacity = 0;
- /** name of the default queue. */
- static final String DEFAULT_QUEUE_NAME = "default";
-
+
static final Log LOG = LogFactory.getLog(CapacityTaskScheduler.class);
protected JobQueuesManager jobQueuesManager;
protected CapacitySchedulerConf schedConf;
@@ -717,10 +715,6 @@
schedConf.setCapacity(queue, quantityToAllocate);
}
- // check if there's a queue with the default name. If not, we quit.
- if (!queueInfoMap.containsKey(DEFAULT_QUEUE_NAME)) {
- throw new IllegalStateException("System has no default queue
configured");
- }
if (totalCapacity > 100.0) {
throw new IllegalArgumentException("Sum of queue capacities over 100% at
"
+ totalCapacity);
Modified:
hadoop/core/branches/branch-0.20/src/contrib/capacity-scheduler/src/test/org/apache/hadoop/mapred/TestCapacityScheduler.java
URL:
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.20/src/contrib/capacity-scheduler/src/test/org/apache/hadoop/mapred/TestCapacityScheduler.java?rev=771667&r1=771666&r2=771667&view=diff
==============================================================================
---
hadoop/core/branches/branch-0.20/src/contrib/capacity-scheduler/src/test/org/apache/hadoop/mapred/TestCapacityScheduler.java
(original)
+++
hadoop/core/branches/branch-0.20/src/contrib/capacity-scheduler/src/test/org/apache/hadoop/mapred/TestCapacityScheduler.java
Tue May 5 11:08:02 2009
@@ -1247,6 +1247,7 @@
//Raise status change event so that jobs can move to running queue.
raiseStatusChangeEvents(scheduler.jobQueuesManager);
+ raiseStatusChangeEvents(scheduler.jobQueuesManager, "q2");
//assign one job
Task t1 = checkAssignment("tt1", "attempt_test_0001_m_000001_0 on tt1");
//Initalize extra job.
@@ -1331,6 +1332,7 @@
//in running queue as we just failed the second job which was initialized
//and completed the first one.
raiseStatusChangeEvents(scheduler.jobQueuesManager);
+ raiseStatusChangeEvents(scheduler.jobQueuesManager, "q2");
//Now schedule a map should be job3 of the user as job1 succeeded job2
//failed and now job3 is running
@@ -1988,6 +1990,25 @@
}
+ public void testStartWithoutDefaultQueueConfigured() throws Exception {
+ //configure a single queue which is not default queue
+ String[] qs = {"q1"};
+ taskTrackerManager.addQueues(qs);
+ ArrayList<FakeQueueInfo> queues = new ArrayList<FakeQueueInfo>();
+ queues.add(new FakeQueueInfo("q1", 100.0f, true, 100));
+ resConf.setFakeQueues(queues);
+ scheduler.setResourceManagerConf(resConf);
+ //Start the scheduler.
+ scheduler.start();
+ //Submit a job and wait till it completes
+ FakeJobInProgress job =
+ submitJob(JobStatus.PREP, 1, 1, "q1", "u1");
+ controlledInitializationPoller.selectJobsToInitialize();
+ raiseStatusChangeEvents(scheduler.jobQueuesManager, "q1");
+ Task t = checkAssignment("tt1", "attempt_test_0001_m_000001_0 on tt1");
+ t = checkAssignment("tt1", "attempt_test_0001_r_000001_0 on tt1");
+ }
+
private void checkRunningJobMovementAndCompletion() throws IOException {
JobQueuesManager mgr = scheduler.jobQueuesManager;
@@ -2103,7 +2124,11 @@
}
private void raiseStatusChangeEvents(JobQueuesManager mgr) {
- Collection<JobInProgress> jips = mgr.getWaitingJobs("default");
+ raiseStatusChangeEvents(mgr, "default");
+ }
+
+ private void raiseStatusChangeEvents(JobQueuesManager mgr, String queueName)
{
+ Collection<JobInProgress> jips = mgr.getWaitingJobs(queueName);
for(JobInProgress jip : jips) {
if(jip.getStatus().getRunState() == JobStatus.RUNNING) {
JobStatusChangeEvent evt = new JobStatusChangeEvent(jip,