|
@@ -21,6 +21,7 @@ import org.apache.hadoop.classification.InterfaceAudience;
|
|
|
import org.apache.hadoop.classification.InterfaceStability;
|
|
|
import org.apache.hadoop.security.authorize.PolicyProvider;
|
|
|
import org.apache.hadoop.security.authorize.Service;
|
|
|
+import org.apache.hadoop.yarn.api.ApplicationMasterProtocolPB;
|
|
|
import org.apache.hadoop.yarn.api.ContainerManagementProtocolPB;
|
|
|
import org.apache.hadoop.yarn.conf.YarnConfiguration;
|
|
|
import org.apache.hadoop.yarn.server.api.CollectorNodemanagerProtocolPB;
|
|
@@ -32,7 +33,24 @@ import org.apache.hadoop.yarn.server.nodemanager.api.LocalizationProtocolPB;
|
|
|
@InterfaceAudience.Private
|
|
|
@InterfaceStability.Unstable
|
|
|
public class NMPolicyProvider extends PolicyProvider {
|
|
|
-
|
|
|
+
|
|
|
+ private static NMPolicyProvider nmPolicyProvider = null;
|
|
|
+
|
|
|
+ private NMPolicyProvider() {}
|
|
|
+
|
|
|
+ @InterfaceAudience.Private
|
|
|
+ @InterfaceStability.Unstable
|
|
|
+ public static NMPolicyProvider getInstance() {
|
|
|
+ if (nmPolicyProvider == null) {
|
|
|
+ synchronized(NMPolicyProvider.class) {
|
|
|
+ if (nmPolicyProvider == null) {
|
|
|
+ nmPolicyProvider = new NMPolicyProvider();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return nmPolicyProvider;
|
|
|
+ }
|
|
|
+
|
|
|
private static final Service[] NODE_MANAGER_SERVICES =
|
|
|
new Service[] {
|
|
|
new Service(YarnConfiguration.
|
|
@@ -43,7 +61,10 @@ public class NMPolicyProvider extends PolicyProvider {
|
|
|
LocalizationProtocolPB.class),
|
|
|
new Service(YarnConfiguration.
|
|
|
YARN_SECURITY_SERVICE_AUTHORIZATION_COLLECTOR_NODEMANAGER_PROTOCOL,
|
|
|
- CollectorNodemanagerProtocolPB.class)
|
|
|
+ CollectorNodemanagerProtocolPB.class),
|
|
|
+ new Service(YarnConfiguration.
|
|
|
+ YARN_SECURITY_SERVICE_AUTHORIZATION_APPLICATIONMASTER_NODEMANAGER_PROTOCOL,
|
|
|
+ ApplicationMasterProtocolPB.class),
|
|
|
};
|
|
|
|
|
|
@Override
|