You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by st...@apache.org on 2014/08/27 21:58:26 UTC
[33/50] git commit: SLIDER-249 in sync with current YARN-913
SLIDER-249 in sync with current YARN-913
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/428f3a78
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/428f3a78
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/428f3a78
Branch: refs/heads/feature/SLIDER-149_Support_a_YARN_service_registry
Commit: 428f3a78fb418b96b9071ef96fa5365c21fe92be
Parents: 0c05abe
Author: Steve Loughran <st...@apache.org>
Authored: Mon Aug 25 19:31:09 2014 +0100
Committer: Steve Loughran <st...@apache.org>
Committed: Mon Aug 25 19:31:09 2014 +0100
----------------------------------------------------------------------
.../providers/agent/AgentProviderService.java | 5 ++-
.../server/appmaster/SliderAppMaster.java | 34 +++++++++++++++-----
.../actions/RegisterComponentInstance.java | 9 ++++--
.../YarnRegistryViewForProviders.java | 6 ++++
4 files changed, 40 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/428f3a78/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
index f78d468..bd83d28 100644
--- a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
+++ b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
@@ -95,7 +95,6 @@ import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -583,8 +582,8 @@ public class AgentProviderService extends AbstractProviderService implements
// and update registration entries
if (instance != null) {
- queueAccess.put(new RegisterComponentInstance(instance.getId(), 0,
- TimeUnit.MILLISECONDS));
+ queueAccess.put(new RegisterComponentInstance(instance.getId(),
+ roleName, 0, TimeUnit.MILLISECONDS));
}
}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/428f3a78/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
index 835ef06..f28bd8f 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
@@ -365,6 +365,7 @@ public class SliderAppMaster extends AbstractSliderLaunchedService
private final QueueService actionQueues = new QueueService();
private String agentOpsUrl;
private String agentStatusUrl;
+ private YarnRegistryViewForProviders yarnRegistryView;
/**
* Service Constructor
@@ -895,11 +896,10 @@ public class SliderAppMaster extends AbstractSliderLaunchedService
//Give the provider restricted access to the state, registry
setupInitialRegistryPaths();
- YarnRegistryViewForProviders yarnRegistryView =
- new YarnRegistryViewForProviders(
- registryOperations, service_user_name,
- SliderKeys.APP_TYPE,
- instanceName);
+ yarnRegistryView = new YarnRegistryViewForProviders(
+ registryOperations, service_user_name,
+ SliderKeys.APP_TYPE,
+ instanceName);
providerService.bindToYarnRegistry(yarnRegistryView);
sliderAMProvider.bindToYarnRegistry(yarnRegistryView);
@@ -978,15 +978,26 @@ public class SliderAppMaster extends AbstractSliderLaunchedService
* Handler for {@link RegisterComponentInstance action}
* Register/re-register a component (that is already in the app state
* @param id the component
+ * @param description
*/
- public boolean registerComponent(ContainerId id) {
+ public boolean registerComponent(ContainerId id, String description) throws
+ IOException {
RoleInstance instance = appState.getOwnedContainer(id);
if (instance == null) {
return false;
}
// this is where component registrations will go
log.info("Registering component {}", id);
-
+ String cid = RegistryTypeUtils.yarnIdToDnsId(id.toString());
+ ServiceRecord container = new ServiceRecord(
+ cid,
+ description);
+ try {
+ yarnRegistryView.putComponent(cid, container, true);
+ } catch (IOException e) {
+ log.warn("Failed to register container {}/{}: {}",
+ id, description, e, e);
+ }
return true;
}
@@ -1000,6 +1011,12 @@ public class SliderAppMaster extends AbstractSliderLaunchedService
*/
public void unregisterComponent(ContainerId id) {
log.info("Unregistering component {}", id);
+ String cid = RegistryTypeUtils.yarnIdToDnsId(id.toString());
+ try {
+ yarnRegistryView.rmComponent(cid);
+ } catch (IOException e) {
+ log.warn("Failed to delete container {} : {}", id, e, e);
+ }
}
/**
@@ -1763,7 +1780,8 @@ public class SliderAppMaster extends AbstractSliderLaunchedService
nmClientAsync.getContainerStatusAsync(containerId,
cinfo.container.getNodeId());
// push out a registration
- queue(new RegisterComponentInstance(containerId, 0, TimeUnit.MILLISECONDS));
+ queue(new RegisterComponentInstance(containerId, cinfo.role,
+ 0, TimeUnit.MILLISECONDS));
} else {
//this is a hypothetical path not seen. We react by warning
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/428f3a78/slider-core/src/main/java/org/apache/slider/server/appmaster/actions/RegisterComponentInstance.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/actions/RegisterComponentInstance.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/actions/RegisterComponentInstance.java
index a8a6fe2..61bf5dd 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/actions/RegisterComponentInstance.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/actions/RegisterComponentInstance.java
@@ -26,14 +26,17 @@ import org.apache.slider.server.appmaster.state.AppState;
import java.util.concurrent.TimeUnit;
public class RegisterComponentInstance extends AsyncAction {
-
public final ContainerId containerId;
+ public final String description;
- public RegisterComponentInstance(ContainerId containerId, long delay,
+ public RegisterComponentInstance(ContainerId containerId,
+ String description,
+ long delay,
TimeUnit timeUnit) {
super("RegisterComponentInstance :" + containerId,
delay, timeUnit);
+ this.description = description;
Preconditions.checkArgument(containerId != null);
this.containerId = containerId;
}
@@ -43,6 +46,6 @@ public class RegisterComponentInstance extends AsyncAction {
QueueAccess queueService,
AppState appState) throws Exception {
- appMaster.registerComponent(containerId);
+ appMaster.registerComponent(containerId, description);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/428f3a78/slider-core/src/main/java/org/apache/slider/server/services/yarnregistry/YarnRegistryViewForProviders.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/services/yarnregistry/YarnRegistryViewForProviders.java b/slider-core/src/main/java/org/apache/slider/server/services/yarnregistry/YarnRegistryViewForProviders.java
index adf15b0..69802e8 100644
--- a/slider-core/src/main/java/org/apache/slider/server/services/yarnregistry/YarnRegistryViewForProviders.java
+++ b/slider-core/src/main/java/org/apache/slider/server/services/yarnregistry/YarnRegistryViewForProviders.java
@@ -117,4 +117,10 @@ public class YarnRegistryViewForProviders {
}
+ public void rmComponent(String componentName) throws IOException {
+ String path = BindingUtils.componentPath(
+ user, sliderServiceclass, instanceName,
+ componentName);
+ registryOperations.delete(path, false);
+ }
}