YARN-2576. Making test patch pass in branch. Contributed by Subru Krishnan and Carlo Curino.
This commit is contained in:
parent
aa92dd45f2
commit
90ac0be86b
|
@ -26,3 +26,6 @@ client-RM protocol. (Subru Krishnan and Carlo Curino via subru)
|
|||
|
||||
MAPREDUCE-6103. Adding reservation APIs to MR resource manager
|
||||
delegate. (Subru Krishnan and Carlo Curino via subru)
|
||||
|
||||
YARN-2576. Fixing compilation, javadocs and audit issues to pass
|
||||
test patch in branch. (Subru Krishnan and Carlo Curino via subru)
|
||||
|
|
|
@ -553,7 +553,7 @@ public interface ApplicationClientProtocol {
|
|||
/**
|
||||
* <p>
|
||||
* The interface used by clients to submit a new reservation to the
|
||||
* {@link ResourceManager}.
|
||||
* {@code ResourceManager}.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
|
@ -566,12 +566,12 @@ public interface ApplicationClientProtocol {
|
|||
*
|
||||
* <p>
|
||||
* In order to respond, a new admission control component in the
|
||||
* {@link ResourceManager} performs an analysis of the resources that have
|
||||
* {@code ResourceManager} performs an analysis of the resources that have
|
||||
* been committed over the period of time the user is requesting, verify that
|
||||
* the user requests can be fulfilled, and that it respect a sharing policy
|
||||
* (e.g., {@link CapacityOverTimePolicy}). Once it has positively determined
|
||||
* (e.g., {@code CapacityOverTimePolicy}). Once it has positively determined
|
||||
* that the ReservationSubmissionRequest is satisfiable the
|
||||
* {@link ResourceManager} answers with a
|
||||
* {@code ResourceManager} answers with a
|
||||
* {@link ReservationSubmissionResponse} that include a non-null
|
||||
* {@link ReservationId}. Upon failure to find a valid allocation the response
|
||||
* is an exception with the reason.
|
||||
|
|
|
@ -26,7 +26,7 @@ import org.apache.hadoop.yarn.util.Records;
|
|||
|
||||
/**
|
||||
* {@link ReservationDeleteResponse} contains the answer of the admission
|
||||
* control system in the {@link ResourceManager} to a reservation delete
|
||||
* control system in the {@code ResourceManager} to a reservation delete
|
||||
* operation. Currently response is empty if the operation was successful, if
|
||||
* not an exception reporting reason for a failure.
|
||||
*
|
||||
|
|
|
@ -69,11 +69,11 @@ public abstract class ReservationSubmissionRequest {
|
|||
ReservationDefinition reservationDefinition);
|
||||
|
||||
/**
|
||||
* Get the name of the {@link Plan} that corresponds to the name of the
|
||||
* Get the name of the {@code Plan} that corresponds to the name of the
|
||||
* {@link QueueInfo} in the scheduler to which the reservation will be
|
||||
* submitted to.
|
||||
*
|
||||
* @return the name of the {@link Plan} that corresponds to the name of the
|
||||
* @return the name of the {@code Plan} that corresponds to the name of the
|
||||
* {@link QueueInfo} in the scheduler to which the reservation will be
|
||||
* submitted to
|
||||
*/
|
||||
|
@ -82,13 +82,13 @@ public abstract class ReservationSubmissionRequest {
|
|||
public abstract String getQueue();
|
||||
|
||||
/**
|
||||
* Set the name of the {@link Plan} that corresponds to the name of the
|
||||
* Set the name of the {@code Plan} that corresponds to the name of the
|
||||
* {@link QueueInfo} in the scheduler to which the reservation will be
|
||||
* submitted to
|
||||
*
|
||||
* @param the name of the parent {@link Plan} that corresponds to the name of
|
||||
* the {@link QueueInfo} in the scheduler to which the reservation
|
||||
* will be submitted to
|
||||
* @param queueName the name of the parent {@code Plan} that corresponds to
|
||||
* the name of the {@link QueueInfo} in the scheduler to which the
|
||||
* reservation will be submitted to
|
||||
*/
|
||||
@Public
|
||||
@Unstable
|
||||
|
|
|
@ -25,11 +25,9 @@ import org.apache.hadoop.yarn.api.records.ReservationDefinition;
|
|||
import org.apache.hadoop.yarn.api.records.ReservationId;
|
||||
import org.apache.hadoop.yarn.util.Records;
|
||||
|
||||
import com.sun.naming.internal.ResourceManager;
|
||||
|
||||
/**
|
||||
* {@link ReservationSubmissionResponse} contains the answer of the admission
|
||||
* control system in the {@link ResourceManager} to a reservation create
|
||||
* control system in the {@code ResourceManager} to a reservation create
|
||||
* operation. Response contains a {@link ReservationId} if the operation was
|
||||
* successful, if not an exception reporting reason for a failure.
|
||||
*
|
||||
|
|
|
@ -26,7 +26,7 @@ import org.apache.hadoop.yarn.util.Records;
|
|||
|
||||
/**
|
||||
* {@link ReservationUpdateResponse} contains the answer of the admission
|
||||
* control system in the {@link ResourceManager} to a reservation update
|
||||
* control system in the {@code ResourceManager} to a reservation update
|
||||
* operation. Currently response is empty if the operation was successful, if
|
||||
* not an exception reporting reason for a failure.
|
||||
*
|
||||
|
|
|
@ -418,10 +418,10 @@ public abstract class ApplicationSubmissionContext {
|
|||
* Set the reservation id, that correspond to a valid resource allocation in
|
||||
* the scheduler (between start and end time of the corresponding reservation)
|
||||
*
|
||||
* @param reservationId representing the unique id of the
|
||||
* @param reservationID representing the unique id of the
|
||||
* corresponding reserved resource allocation in the scheduler
|
||||
*/
|
||||
@Public
|
||||
@Unstable
|
||||
public abstract void setReservationID(ReservationId reservationID);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -103,7 +103,7 @@ public abstract class ReservationDefinition {
|
|||
* Set the list of {@link ReservationRequests} representing the resources
|
||||
* required by the application
|
||||
*
|
||||
* @param resources the list of {@link ReservationRequests}
|
||||
* @param reservationRequests the list of {@link ReservationRequests}
|
||||
*/
|
||||
@Public
|
||||
@Unstable
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
package org.apache.hadoop.yarn.api.records;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.NumberFormat;
|
||||
|
||||
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||
|
@ -33,7 +34,7 @@ import org.apache.hadoop.yarn.util.Records;
|
|||
*
|
||||
* <p>
|
||||
* The globally unique nature of the identifier is achieved by using the
|
||||
* <em>cluster timestamp</em> i.e. start-time of the {@link ResourceManager}
|
||||
* <em>cluster timestamp</em> i.e. start-time of the {@code ResourceManager}
|
||||
* along with a monotonically increasing counter for the reservation.
|
||||
* </p>
|
||||
*/
|
||||
|
@ -60,7 +61,7 @@ public abstract class ReservationId implements Comparable<ReservationId> {
|
|||
/**
|
||||
* Get the long identifier of the {@link ReservationId} which is unique for
|
||||
* all Reservations started by a particular instance of the
|
||||
* {@link ResourceManager}.
|
||||
* {@code ResourceManager}.
|
||||
*
|
||||
* @return long identifier of the {@link ReservationId}
|
||||
*/
|
||||
|
@ -73,10 +74,10 @@ public abstract class ReservationId implements Comparable<ReservationId> {
|
|||
protected abstract void setId(long id);
|
||||
|
||||
/**
|
||||
* Get the <em>start time</em> of the {@link ResourceManager} which is used to
|
||||
* Get the <em>start time</em> of the {@code ResourceManager} which is used to
|
||||
* generate globally unique {@link ReservationId}.
|
||||
*
|
||||
* @return <em>start time</em> of the {@link ResourceManager}
|
||||
* @return <em>start time</em> of the {@code ResourceManager}
|
||||
*/
|
||||
@Public
|
||||
@Unstable
|
||||
|
@ -115,6 +116,34 @@ public abstract class ReservationId implements Comparable<ReservationId> {
|
|||
+ reservIdFormat.get().format(getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse the string argument as a {@link ReservationId}
|
||||
*
|
||||
* @param reservationId the string representation of the {@link ReservationId}
|
||||
* @return the {@link ReservationId} corresponding to the input string if
|
||||
* valid, null if input is null
|
||||
* @throws IOException if unable to parse the input string
|
||||
*/
|
||||
@Public
|
||||
@Unstable
|
||||
public static ReservationId parseReservationId(String reservationId)
|
||||
throws IOException {
|
||||
if (reservationId == null) {
|
||||
return null;
|
||||
}
|
||||
if (!reservationId.startsWith(reserveIdStrPrefix)) {
|
||||
throw new IOException("The specified reservation id is invalid: "
|
||||
+ reservationId);
|
||||
}
|
||||
String[] resFields = reservationId.split("_");
|
||||
if (resFields.length != 3) {
|
||||
throw new IOException("The specified reservation id is not parseable: "
|
||||
+ reservationId);
|
||||
}
|
||||
return newInstance(Long.parseLong(resFields[1]),
|
||||
Long.parseLong(resFields[2]));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
// generated by eclipse
|
||||
|
|
|
@ -27,7 +27,7 @@ import org.apache.hadoop.yarn.util.Records;
|
|||
/**
|
||||
* <p>
|
||||
* {@link ReservationRequest} represents the request made by an application to
|
||||
* the {@link ResourceManager} to reserve {@link Resource}s.
|
||||
* the {@code ResourceManager} to reserve {@link Resource}s.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.api.records;
|
||||
|
||||
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||
|
@ -72,7 +90,7 @@ public enum ReservationRequestInterpreter {
|
|||
* {@link ReservationDefinition} are satisfied for the overall
|
||||
* {@link ReservationDefinition} to be satisfied. Moreover, it imposes a
|
||||
* strict temporal ordering on the allocation used to satisfy the
|
||||
* {@link ResourceRequeust}s. It imposes a strict temporal ordering on the
|
||||
* {@link ReservationRequest}s. It imposes a strict temporal ordering on the
|
||||
* allocation used to satisfy the {@link ReservationRequest}s. The allocations
|
||||
* satisfying the {@link ReservationRequest} in position k must strictly
|
||||
* precede the allocations for the {@link ReservationRequest} at position k+1.
|
||||
|
|
|
@ -61,7 +61,7 @@ public abstract class ReservationRequests {
|
|||
* Set the list of {@link ReservationRequest} representing the resources
|
||||
* required by the application
|
||||
*
|
||||
* @param resources the list of {@link ReservationRequest}
|
||||
* @param reservationResources the list of {@link ReservationRequest}
|
||||
*/
|
||||
@Public
|
||||
@Unstable
|
||||
|
|
|
@ -50,6 +50,7 @@ import org.apache.hadoop.yarn.api.records.NodeReport;
|
|||
import org.apache.hadoop.yarn.api.records.NodeState;
|
||||
import org.apache.hadoop.yarn.api.records.QueueInfo;
|
||||
import org.apache.hadoop.yarn.api.records.QueueUserACLInfo;
|
||||
import org.apache.hadoop.yarn.api.records.ReservationDefinition;
|
||||
import org.apache.hadoop.yarn.api.records.ReservationId;
|
||||
import org.apache.hadoop.yarn.api.records.Token;
|
||||
import org.apache.hadoop.yarn.api.records.YarnApplicationState;
|
||||
|
@ -486,36 +487,36 @@ public abstract class YarnClient extends AbstractService {
|
|||
/**
|
||||
* <p>
|
||||
* The interface used by clients to submit a new reservation to the
|
||||
* {@link ResourceManager}.
|
||||
* {@code ResourceManager}.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* The client packages all details of its request in a
|
||||
* {@link ReservationRequest} object. This contains information about the
|
||||
* amount of capacity, temporal constraints, and gang needs. Furthermore, the
|
||||
* reservation might be composed of multiple stages, with ordering
|
||||
* dependencies among them.
|
||||
* {@link ReservationSubmissionRequest} object. This contains information
|
||||
* about the amount of capacity, temporal constraints, and gang needs.
|
||||
* Furthermore, the reservation might be composed of multiple stages, with
|
||||
* ordering dependencies among them.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* In order to respond, a new admission control component in the
|
||||
* {@link ResourceManager} performs an analysis of the resources that have
|
||||
* {@code ResourceManager} performs an analysis of the resources that have
|
||||
* been committed over the period of time the user is requesting, verify that
|
||||
* the user requests can be fulfilled, and that it respect a sharing policy
|
||||
* (e.g., {@link CapacityOverTimePolicy}). Once it has positively determined
|
||||
* that the ReservationRequest is satisfiable the {@link ResourceManager}
|
||||
* answers with a {@link ReservationResponse} that include a
|
||||
* (e.g., {@code CapacityOverTimePolicy}). Once it has positively determined
|
||||
* that the ReservationRequest is satisfiable the {@code ResourceManager}
|
||||
* answers with a {@link ReservationSubmissionResponse} that includes a
|
||||
* {@link ReservationId}. Upon failure to find a valid allocation the response
|
||||
* is an exception with the message detailing the reason of failure.
|
||||
* </p>
|
||||
*
|
||||
* <p>
|
||||
* The semantics guarantees that the ReservationId returned, corresponds to a
|
||||
* valid reservation existing in the time-range request by the user. The
|
||||
* amount of capacity dedicated to such reservation can vary overtime,
|
||||
* depending of the allocation that has been determined. But it is guaranteed
|
||||
* to satisfy all the constraint expressed by the user in the
|
||||
* {@link ReservationRequest}
|
||||
* The semantics guarantees that the {@link ReservationId} returned,
|
||||
* corresponds to a valid reservation existing in the time-range request by
|
||||
* the user. The amount of capacity dedicated to such reservation can vary
|
||||
* overtime, depending of the allocation that has been determined. But it is
|
||||
* guaranteed to satisfy all the constraint expressed by the user in the
|
||||
* {@link ReservationDefinition}
|
||||
* </p>
|
||||
*
|
||||
* @param request request to submit a new Reservation
|
||||
|
@ -540,14 +541,15 @@ public abstract class YarnClient extends AbstractService {
|
|||
* <p>
|
||||
* The allocation is attempted by virtually substituting all previous
|
||||
* allocations related to this Reservation with new ones, that satisfy the new
|
||||
* {@link ReservationRequest}. Upon success the previous allocation is
|
||||
* {@link ReservationDefinition}. Upon success the previous allocation is
|
||||
* atomically substituted by the new one, and on failure (i.e., if the system
|
||||
* cannot find a valid allocation for the updated request), the previous
|
||||
* allocation remains valid.
|
||||
* </p>
|
||||
*
|
||||
* @param request to update an existing Reservation (the ReservationRequest
|
||||
* should refer to an existing valid {@link ReservationId})
|
||||
* @param request to update an existing Reservation (the
|
||||
* {@link ReservationUpdateRequest} should refer to an existing valid
|
||||
* {@link ReservationId})
|
||||
* @return response empty on successfully updating the existing reservation
|
||||
* @throws YarnException if the request is invalid or reservation cannot be
|
||||
* updated successfully
|
||||
|
@ -564,8 +566,9 @@ public abstract class YarnClient extends AbstractService {
|
|||
* The interface used by clients to remove an existing Reservation.
|
||||
* </p>
|
||||
*
|
||||
* @param request to remove an existing Reservation (the ReservationRequest
|
||||
* should refer to an existing valid {@link ReservationId})
|
||||
* @param request to remove an existing Reservation (the
|
||||
* {@link ReservationDeleteRequest} should refer to an existing valid
|
||||
* {@link ReservationId})
|
||||
* @return response empty on successfully deleting the existing reservation
|
||||
* @throws YarnException if the request is invalid or reservation cannot be
|
||||
* deleted successfully
|
||||
|
|
|
@ -166,4 +166,19 @@ public class ReservationDefinitionPBImpl extends ReservationDefinition {
|
|||
+ getReservationRequests() + "}";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return getProto().hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object other) {
|
||||
if (other == null)
|
||||
return false;
|
||||
if (other.getClass().isAssignableFrom(this.getClass())) {
|
||||
return this.getProto().equals(this.getClass().cast(other).getProto());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -186,4 +186,19 @@ public class ReservationRequestsPBImpl extends ReservationRequests {
|
|||
+ ", Reservation Type: " + getInterpreter() + "}";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return getProto().hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object other) {
|
||||
if (other == null)
|
||||
return false;
|
||||
if (other.getClass().isAssignableFrom(this.getClass())) {
|
||||
return this.getProto().equals(this.getClass().cast(other).getProto());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -216,6 +216,11 @@ public class TestPBImplRecords {
|
|||
"root", 1.0f, 1.0f, 0.1f, null, null, QueueState.RUNNING));
|
||||
generateByNewInstance(QueueUserACLInfo.class);
|
||||
generateByNewInstance(YarnClusterMetrics.class);
|
||||
// for reservation system
|
||||
generateByNewInstance(ReservationId.class);
|
||||
generateByNewInstance(ReservationRequest.class);
|
||||
generateByNewInstance(ReservationRequests.class);
|
||||
generateByNewInstance(ReservationDefinition.class);
|
||||
}
|
||||
|
||||
private class GetSetPair {
|
||||
|
@ -893,4 +898,40 @@ public class TestPBImplRecords {
|
|||
validatePBImplRecord(UpdateNodeResourceResponsePBImpl.class,
|
||||
UpdateNodeResourceResponseProto.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReservationSubmissionRequestPBImpl() throws Exception {
|
||||
validatePBImplRecord(ReservationSubmissionRequestPBImpl.class,
|
||||
ReservationSubmissionRequestProto.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReservationSubmissionResponsePBImpl() throws Exception {
|
||||
validatePBImplRecord(ReservationSubmissionResponsePBImpl.class,
|
||||
ReservationSubmissionResponseProto.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReservationUpdateRequestPBImpl() throws Exception {
|
||||
validatePBImplRecord(ReservationUpdateRequestPBImpl.class,
|
||||
ReservationUpdateRequestProto.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReservationUpdateResponsePBImpl() throws Exception {
|
||||
validatePBImplRecord(ReservationUpdateResponsePBImpl.class,
|
||||
ReservationUpdateResponseProto.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReservationDeleteRequestPBImpl() throws Exception {
|
||||
validatePBImplRecord(ReservationDeleteRequestPBImpl.class,
|
||||
ReservationDeleteRequestProto.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReservationDeleteResponsePBImpl() throws Exception {
|
||||
validatePBImplRecord(ReservationDeleteResponsePBImpl.class,
|
||||
ReservationDeleteResponseProto.class);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*******************************************************************************
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*******************************************************************************/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import java.util.Date;
|
||||
|
|
|
@ -1,6 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import org.apache.hadoop.classification.InterfaceAudience.LimitedPrivate;
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -211,6 +229,9 @@ class InMemoryPlan implements Plan {
|
|||
LOG.error(errMsg);
|
||||
throw new IllegalArgumentException(errMsg);
|
||||
}
|
||||
// validate if we can accept this reservation, throws exception if
|
||||
// validation fails
|
||||
policy.validate(this, reservation);
|
||||
if (!removeReservation(currReservation)) {
|
||||
LOG.error("Unable to replace reservation: {} from plan.",
|
||||
reservation.getReservationId());
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*******************************************************************************
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*******************************************************************************/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import java.util.Collections;
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import org.apache.hadoop.classification.InterfaceAudience.LimitedPrivate;
|
||||
|
@ -67,7 +85,7 @@ public class NoOverCommitPolicy implements SharingPolicy {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void init(String inventoryQueuePath, Configuration conf) {
|
||||
public void init(String planQueuePath, Configuration conf) {
|
||||
// nothing to do for this policy
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,25 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import org.apache.hadoop.yarn.api.records.ReservationDefinition;
|
||||
|
||||
/**
|
||||
* A Plan represents the central data structure of a reservation system that
|
||||
* maintains the "agenda" for the cluster. In particular, it maintains
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import org.apache.hadoop.yarn.api.records.Resource;
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import org.apache.hadoop.yarn.api.records.ReservationId;
|
||||
|
@ -34,8 +52,8 @@ public interface PlanEdit extends PlanContext, PlanView {
|
|||
* uniquely by its {@link ReservationId}. This will generally be used for
|
||||
* garbage collection
|
||||
*
|
||||
* @param reservation the {@link ReservationAllocation} to be deleted from the
|
||||
* plan identified uniquely by its {@link ReservationId}
|
||||
* @param reservationID the {@link ReservationAllocation} to be deleted from
|
||||
* the plan identified uniquely by its {@link ReservationId}
|
||||
* @return true if delete is successful, false otherwise
|
||||
*/
|
||||
public boolean deleteReservation(ReservationId reservationID)
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*******************************************************************************
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*******************************************************************************/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import java.util.Collection;
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*******************************************************************************
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*******************************************************************************/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import java.util.Set;
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.hadoop.conf.Configuration;
|
||||
import org.apache.hadoop.yarn.api.records.ReservationDefinition;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.reservation.exceptions.PlanningException;
|
||||
|
||||
public interface Planner {
|
||||
|
||||
/**
|
||||
* Update the existing {@link Plan}, by adding/removing/updating existing
|
||||
* reservations, and adding a subset of the reservation requests in the
|
||||
* contracts parameter.
|
||||
*
|
||||
* @param plan the {@link Plan} to replan
|
||||
* @param contracts the list of reservation requests
|
||||
* @throws PlanningException
|
||||
*/
|
||||
public void plan(Plan plan, List<ReservationDefinition> contracts)
|
||||
throws PlanningException;
|
||||
|
||||
/**
|
||||
* Initialize the replanner
|
||||
*
|
||||
* @param planQueueName the name of the queue for this plan
|
||||
* @param conf the scheduler configuration
|
||||
*/
|
||||
void init(String planQueueName, Configuration conf);
|
||||
}
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import java.io.IOException;
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*******************************************************************************
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*******************************************************************************/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import org.apache.hadoop.yarn.api.records.ReservationDefinition;
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import java.util.Map;
|
||||
|
@ -28,7 +46,7 @@ public interface ReservationAllocation extends
|
|||
/**
|
||||
* Returns the original {@link ReservationDefinition} submitted by the client
|
||||
*
|
||||
* @return
|
||||
* @return the {@link ReservationDefinition} submitted by the client
|
||||
*/
|
||||
public ReservationDefinition getReservationDefinition();
|
||||
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import java.util.List;
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import org.apache.hadoop.classification.InterfaceAudience.LimitedPrivate;
|
||||
|
@ -17,10 +35,10 @@ public interface SharingPolicy {
|
|||
/**
|
||||
* Initialize this policy
|
||||
*
|
||||
* @param inventoryQueuePath the name of the queue for this plan
|
||||
* @param planQueuePath the name of the queue for this plan
|
||||
* @param conf the system configuration
|
||||
*/
|
||||
public void init(String inventoryQueuePath, Configuration conf);
|
||||
public void init(String planQueuePath, Configuration conf);
|
||||
|
||||
/**
|
||||
* This method runs the policy validation logic, and return true/false on
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
@ -7,6 +25,7 @@ import java.util.TreeSet;
|
|||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.hadoop.conf.Configuration;
|
||||
import org.apache.hadoop.yarn.api.records.ReservationDefinition;
|
||||
import org.apache.hadoop.yarn.api.records.Resource;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.reservation.exceptions.PlanningException;
|
||||
|
@ -50,8 +69,10 @@ public class SimpleCapacityReplanner implements Planner {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void init(String planQueueName, CapacitySchedulerConfiguration conf) {
|
||||
this.lengthOfCheckZone = conf.getEnforcementWindow(planQueueName);
|
||||
public void init(String planQueueName, Configuration conf) {
|
||||
this.lengthOfCheckZone =
|
||||
((CapacitySchedulerConfiguration) conf)
|
||||
.getEnforcementWindow(planQueueName);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation.exceptions;
|
||||
|
||||
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation.exceptions;
|
||||
|
||||
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation.exceptions;
|
||||
|
||||
import org.apache.hadoop.yarn.api.protocolrecords.ReservationSubmissionRequest;
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation.exceptions;
|
||||
|
||||
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||
|
|
|
@ -1,7 +1,26 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation.exceptions;
|
||||
|
||||
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||
import org.apache.hadoop.yarn.server.resourcemanager.reservation.Plan;
|
||||
|
||||
/**
|
||||
* This exception indicate that the reservation that has been attempted, would
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.scheduler;
|
||||
|
||||
import org.apache.hadoop.yarn.exceptions.YarnException;
|
||||
|
|
|
@ -522,7 +522,7 @@ public class CapacityScheduler extends
|
|||
: (parent.getQueuePath() + "." + queueName);
|
||||
String[] childQueueNames =
|
||||
conf.getQueues(fullQueueName);
|
||||
boolean isReservableQueue = conf.isReservableQueue(fullQueueName);
|
||||
boolean isReservableQueue = conf.isReservable(fullQueueName);
|
||||
if (childQueueNames == null || childQueueNames.length == 0) {
|
||||
if (null == parent) {
|
||||
throw new IllegalStateException(
|
||||
|
@ -1283,6 +1283,15 @@ public class CapacityScheduler extends
|
|||
.handle(new RMAppRejectedEvent(applicationId, message));
|
||||
return null;
|
||||
}
|
||||
if (!queue.getParent().getQueueName().equals(queueName)) {
|
||||
String message =
|
||||
"Application: " + applicationId + " submitted to a reservation "
|
||||
+ resQName + " which does not belong to the specified queue: "
|
||||
+ queueName;
|
||||
this.rmContext.getDispatcher().getEventHandler()
|
||||
.handle(new RMAppRejectedEvent(applicationId, message));
|
||||
return null;
|
||||
}
|
||||
// use the reservation queue to run the app
|
||||
queueName = resQName;
|
||||
} else {
|
||||
|
|
|
@ -197,7 +197,7 @@ public class CapacitySchedulerConfiguration extends Configuration {
|
|||
"instantaneous-max-capacity";
|
||||
|
||||
@Private
|
||||
public static final long DEFAULT_RESERVATION_WINDOW = 0L;
|
||||
public static final long DEFAULT_RESERVATION_WINDOW = 86400000L;
|
||||
|
||||
@Private
|
||||
public static final String RESERVATION_ADMISSION_POLICY =
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity;
|
||||
|
||||
import java.io.IOException;
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity;
|
||||
|
||||
import java.io.IOException;
|
||||
|
|
|
@ -1,3 +1,21 @@
|
|||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.scheduler.common;
|
||||
|
||||
public class QueueEntitlement {
|
||||
|
|
|
@ -49,7 +49,7 @@ public class CapacitySchedulerQueueInfo {
|
|||
protected QueueState state;
|
||||
protected CapacitySchedulerQueueInfoList queues;
|
||||
protected ResourceInfo resourcesUsed;
|
||||
private boolean hideReservationQueues = true;
|
||||
private boolean hideReservationQueues = false;
|
||||
|
||||
CapacitySchedulerQueueInfo() {
|
||||
};
|
||||
|
@ -72,8 +72,8 @@ public class CapacitySchedulerQueueInfo {
|
|||
state = q.getState();
|
||||
resourcesUsed = new ResourceInfo(q.getUsedResources());
|
||||
if(q instanceof PlanQueue &&
|
||||
((PlanQueue)q).showReservationsAsQueues()) {
|
||||
hideReservationQueues = false;
|
||||
!((PlanQueue)q).showReservationsAsQueues()) {
|
||||
hideReservationQueues = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ import org.apache.hadoop.yarn.api.records.Container;
|
|||
import org.apache.hadoop.yarn.api.records.ContainerId;
|
||||
import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
|
||||
import org.apache.hadoop.yarn.api.records.NodeId;
|
||||
import org.apache.hadoop.yarn.api.records.ReservationId;
|
||||
import org.apache.hadoop.yarn.api.records.Resource;
|
||||
import org.apache.hadoop.yarn.api.records.YarnApplicationState;
|
||||
import org.apache.hadoop.yarn.conf.YarnConfiguration;
|
||||
|
@ -177,6 +178,11 @@ public abstract class MockAsm extends MockApps {
|
|||
public RMAppMetrics getRMAppMetrics() {
|
||||
return new RMAppMetrics(Resource.newInstance(0, 0), 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReservationId getReservationId() {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
}
|
||||
|
||||
public static RMApp newApplication(int i) {
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*******************************************************************************
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*******************************************************************************/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
|
@ -80,7 +97,7 @@ public class ReservationSystemTestUtil {
|
|||
+ CapacitySchedulerConfiguration.DOT + reservationQ;
|
||||
conf.setCapacity(dedicated, 80);
|
||||
// Set as reservation queue
|
||||
conf.setReservableQueue(dedicated, true);
|
||||
conf.setReservable(dedicated, true);
|
||||
|
||||
// Define 2nd-level queues
|
||||
final String A1 = A + ".a1";
|
||||
|
@ -118,11 +135,11 @@ public class ReservationSystemTestUtil {
|
|||
final String dedicated = prefix + reservationQ;
|
||||
conf.setCapacity(dedicated, 80);
|
||||
// Set as reservation queue
|
||||
conf.setReservableQueue(dedicated, true);
|
||||
conf.setReservable(dedicated, true);
|
||||
|
||||
conf.setCapacity(prefix + newQ, 10);
|
||||
// Set as reservation queue
|
||||
conf.setReservableQueue(prefix + newQ, true);
|
||||
conf.setReservable(prefix + newQ, true);
|
||||
|
||||
// Define 2nd-level queues
|
||||
final String A1 = A + ".a1";
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*******************************************************************************
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*******************************************************************************/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*******************************************************************************
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*******************************************************************************/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import java.io.IOException;
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*******************************************************************************
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*******************************************************************************/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
|
@ -8,7 +25,6 @@ import static org.mockito.Mockito.mock;
|
|||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
@ -62,7 +78,7 @@ public class TestGreedyReservationAgent {
|
|||
capConf.setMaximumCapacity(reservationQ, 100);
|
||||
capConf.setAverageCapacity(reservationQ, 100);
|
||||
CapacityOverTimePolicy policy = new CapacityOverTimePolicy();
|
||||
policy.init(reservationQ, capConf, new HashSet<String>());
|
||||
policy.init(reservationQ, capConf);
|
||||
agent = new GreedyReservationAgent();
|
||||
|
||||
QueueMetrics queueMetrics = QueueMetrics.forQueue("dedicated",
|
||||
|
@ -538,7 +554,7 @@ public class TestGreedyReservationAgent {
|
|||
capConf.setMaximumCapacity(reservationQ, 100);
|
||||
capConf.setAverageCapacity(reservationQ, 100);
|
||||
CapacityOverTimePolicy policy = new CapacityOverTimePolicy();
|
||||
policy.init(reservationQ, capConf, new HashSet<String>());
|
||||
policy.init(reservationQ, capConf);
|
||||
|
||||
plan = new InMemoryPlan(scheduler.getRootQueueMetrics(), policy, agent,
|
||||
clusterCapacity, step, res, minAlloc, maxAlloc, "dedicated", null, true);
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*******************************************************************************
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*******************************************************************************/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*******************************************************************************
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*******************************************************************************/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import java.util.Collections;
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*******************************************************************************
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*******************************************************************************/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*******************************************************************************
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*******************************************************************************/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*******************************************************************************
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*******************************************************************************/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import static org.mockito.Matchers.any;
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
/*******************************************************************************
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*******************************************************************************/
|
||||
package org.apache.hadoop.yarn.server.resourcemanager.reservation;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
@ -7,7 +24,6 @@ import static org.mockito.Matchers.any;
|
|||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
|
@ -37,7 +53,7 @@ public class TestSimpleCapacityReplanner {
|
|||
ReservationAgent agent = mock(ReservationAgent.class);
|
||||
|
||||
SharingPolicy policy = new NoOverCommitPolicy();
|
||||
policy.init("root.dedicated", null, new HashSet<String>());
|
||||
policy.init("root.dedicated", null);
|
||||
|
||||
QueueMetrics queueMetrics = mock(QueueMetrics.class);
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ import org.apache.hadoop.yarn.api.records.ApplicationReport;
|
|||
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
|
||||
import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
|
||||
import org.apache.hadoop.yarn.api.records.NodeId;
|
||||
import org.apache.hadoop.yarn.api.records.ReservationId;
|
||||
import org.apache.hadoop.yarn.api.records.Resource;
|
||||
import org.apache.hadoop.yarn.api.records.YarnApplicationState;
|
||||
import org.apache.hadoop.yarn.api.records.impl.pb.ApplicationSubmissionContextPBImpl;
|
||||
|
@ -258,4 +259,9 @@ public class MockRMApp implements RMApp {
|
|||
public RMAppMetrics getRMAppMetrics() {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReservationId getReservationId() {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,7 +66,7 @@ public class TestCapacitySchedulerDynamicBehavior {
|
|||
setupPlanQueueConfiguration(conf);
|
||||
conf.setClass(YarnConfiguration.RM_SCHEDULER, CapacityScheduler.class,
|
||||
ResourceScheduler.class);
|
||||
conf.setBoolean(YarnConfiguration.RM_RESERVATIONS_ENABLE, false);
|
||||
conf.setBoolean(YarnConfiguration.RM_RESERVATION_SYSTEM_ENABLE, false);
|
||||
rm = new MockRM(conf);
|
||||
rm.start();
|
||||
}
|
||||
|
@ -272,7 +272,7 @@ public class TestCapacitySchedulerDynamicBehavior {
|
|||
conf.setCapacity(B3, B3_CAPACITY);
|
||||
conf.setUserLimitFactor(B3, 100.0f);
|
||||
|
||||
conf.setReservableQueue(A, true);
|
||||
conf.setReservable(A, true);
|
||||
conf.setReservationWindow(A, 86400 * 1000);
|
||||
conf.setAverageCapacity(A, 1.0f);
|
||||
|
||||
|
|
Loading…
Reference in New Issue