You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by ki...@apache.org on 2014/02/19 19:29:58 UTC
git commit: Works with hello world spec.yaml
Repository: helix
Updated Branches:
refs/heads/helix-provisioning 5a1391ea1 -> d1e7ca604
Works with hello world spec.yaml
Project: http://git-wip-us.apache.org/repos/asf/helix/repo
Commit: http://git-wip-us.apache.org/repos/asf/helix/commit/d1e7ca60
Tree: http://git-wip-us.apache.org/repos/asf/helix/tree/d1e7ca60
Diff: http://git-wip-us.apache.org/repos/asf/helix/diff/d1e7ca60
Branch: refs/heads/helix-provisioning
Commit: d1e7ca604de7cefd2effa65f43765902448b0820
Parents: 5a1391e
Author: Kishore Gopalakrishna <g....@gmail.com>
Authored: Wed Feb 19 10:29:48 2014 -0800
Committer: Kishore Gopalakrishna <g....@gmail.com>
Committed: Wed Feb 19 10:29:48 2014 -0800
----------------------------------------------------------------------
.../provisioner/ContainerProvider.java | 1 -
.../integration/TestLocalContainerProvider.java | 5 --
.../helix/provisioning/yarn/AppLauncher.java | 2 -
.../provisioning/yarn/YarnProvisioner.java | 10 +--
.../yarn/example/HelloWordAppSpecFactory.java | 85 ++++++++++++--------
.../yarn/example/HelloworldAppSpec.java | 69 ++++++++++++++--
.../main/resources/hello_world_app_spec.yaml | 20 ++---
7 files changed, 126 insertions(+), 66 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/helix/blob/d1e7ca60/helix-core/src/main/java/org/apache/helix/controller/provisioner/ContainerProvider.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/controller/provisioner/ContainerProvider.java b/helix-core/src/main/java/org/apache/helix/controller/provisioner/ContainerProvider.java
index a95abe0..a6fd791 100644
--- a/helix-core/src/main/java/org/apache/helix/controller/provisioner/ContainerProvider.java
+++ b/helix-core/src/main/java/org/apache/helix/controller/provisioner/ContainerProvider.java
@@ -33,5 +33,4 @@ public interface ContainerProvider {
ListenableFuture<Boolean> stopContainer(ContainerId containerId);
- ContainerState getContainerState(ContainerId containerId);
}
http://git-wip-us.apache.org/repos/asf/helix/blob/d1e7ca60/helix-core/src/test/java/org/apache/helix/integration/TestLocalContainerProvider.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestLocalContainerProvider.java b/helix-core/src/test/java/org/apache/helix/integration/TestLocalContainerProvider.java
index 8eb5f56..0e4c803 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestLocalContainerProvider.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestLocalContainerProvider.java
@@ -270,11 +270,6 @@ public class TestLocalContainerProvider extends ZkUnitTestBase {
}
@Override
- public ContainerState getContainerState(ContainerId containerId) {
- return _states.get(containerId);
- }
-
- @Override
public TargetProviderResponse evaluateExistingContainers(Cluster cluster,
ResourceId resourceId, Collection<Participant> participants) {
TargetProviderResponse response = new TargetProviderResponse();
http://git-wip-us.apache.org/repos/asf/helix/blob/d1e7ca60/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/AppLauncher.java
----------------------------------------------------------------------
diff --git a/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/AppLauncher.java b/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/AppLauncher.java
index 409a195..d06ae67 100644
--- a/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/AppLauncher.java
+++ b/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/AppLauncher.java
@@ -367,7 +367,5 @@ public class AppLauncher {
AppLauncher launcher = new AppLauncher(applicationSpecFactory, yamlConfigFile);
launcher.launch();
launcher.waitUntilDone();
-
}
-
}
http://git-wip-us.apache.org/repos/asf/helix/blob/d1e7ca60/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/YarnProvisioner.java
----------------------------------------------------------------------
diff --git a/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/YarnProvisioner.java b/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/YarnProvisioner.java
index 61b1d70..477023b 100644
--- a/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/YarnProvisioner.java
+++ b/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/YarnProvisioner.java
@@ -73,6 +73,9 @@ public class YarnProvisioner implements Provisioner, TargetProvider, ContainerPr
Map<ContainerId, Container> allocatedContainersMap = new HashMap<ContainerId, Container>();
private HelixManager _helixManager;
private ResourceConfig _resourceConfig;
+ public YarnProvisioner(){
+
+ }
@Override
public ListenableFuture<ContainerId> allocateContainer(ContainerSpec spec) {
@@ -93,7 +96,7 @@ public class YarnProvisioner implements Provisioner, TargetProvider, ContainerPr
}
@Override
- public ListenableFuture<Boolean> deallocateContainer(ContainerId containerId) {
+ public ListenableFuture<Boolean> deallocateContainer(final ContainerId containerId) {
ListenableFuture<ContainerReleaseResponse> releaseContainer =
applicationMaster.releaseContainer(allocatedContainersMap.get(containerId));
return Futures.transform(releaseContainer, new Function<ContainerReleaseResponse, Boolean>() {
@@ -243,11 +246,6 @@ public class YarnProvisioner implements Provisioner, TargetProvider, ContainerPr
}
@Override
- public ContainerState getContainerState(ContainerId containerId) {
- return null;
- }
-
- @Override
public void init(HelixManager helixManager, ResourceConfig resourceConfig) {
_helixManager = helixManager;
_resourceConfig = resourceConfig;
http://git-wip-us.apache.org/repos/asf/helix/blob/d1e7ca60/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/example/HelloWordAppSpecFactory.java
----------------------------------------------------------------------
diff --git a/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/example/HelloWordAppSpecFactory.java b/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/example/HelloWordAppSpecFactory.java
index 1746fe6..f9f1980 100644
--- a/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/example/HelloWordAppSpecFactory.java
+++ b/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/example/HelloWordAppSpecFactory.java
@@ -17,31 +17,34 @@ public class HelloWordAppSpecFactory implements ApplicationSpecFactory {
static HelloworldAppSpec data;
static {
- data = new HelloworldAppSpec();
- data._appConfig = new AppConfig();
- data._appConfig.setValue("k1", "v1");
- data._appName = "testApp";
- data._appMasterPackageUri =
- new File("/Users/kgopalak/Documents/projects/incubator-helix/helix-provisioning/target/helix-provisioning-0.7.1-incubating-SNAPSHOT-pkg.tar").toURI().toString();
- data._serviceConfigMap = new HashMap<String, Map<String, String>>();
- data._serviceConfigMap.put("HelloWorld", new HashMap<String, String>());
- data._serviceConfigMap.get("HelloWorld").put("k1", "v1");
- data._serviceMainClassMap = new HashMap<String, String>();
- data._serviceMainClassMap.put("HelloWorld", HelloWorldService.class.getCanonicalName());
- data._servicePackageURIMap = new HashMap<String, String>();
- data._servicePackageURIMap
+ HelloworldAppSpec data = new HelloworldAppSpec();
+ AppConfig appConfig = new AppConfig();
+ appConfig.setValue("k1", "v1");
+ data.setAppConfig(appConfig);
+ data.setAppName("testApp");
+ data.setAppMasterPackageUri(
+ "/Users/kgopalak/Documents/projects/incubator-helix/helix-provisioning/helix-provisioning-0.7.1-incubating-SNAPSHOT-pkg.tar");
+ HashMap<String, Map<String, String>> serviceConfigMap = new HashMap<String, Map<String, String>>();
+ serviceConfigMap.put("HelloWorld", new HashMap<String, String>());
+ serviceConfigMap.get("HelloWorld").put("k1", "v1");
+ data.setServiceConfigMap(serviceConfigMap);
+ HashMap<String, String> serviceMainClassMap = new HashMap<String, String>();
+ serviceMainClassMap.put("HelloWorld", HelloWorldService.class.getCanonicalName());
+ data.setServiceMainClassMap(serviceMainClassMap);
+ HashMap<String, String> servicePackageURIMap = new HashMap<String, String>();
+ servicePackageURIMap
.put(
"HelloWorld",
- new File("/Users/kgopalak/Documents/projects/incubator-helix/helix-provisioning/target/helix-provisioning-0.7.1-incubating-SNAPSHOT-pkg.tar").toURI().toString());
- data._services = Arrays.asList(new String[] {
+ "/Users/kgopalak/Documents/projects/incubator-helix/helix-provisioning/helix-provisioning-0.7.1-incubating-SNAPSHOT-pkg.tar");
+ data.setServicePackageURIMap(servicePackageURIMap);
+ data.setServices(Arrays.asList(new String[] {
"HelloWorld"
- });
-
- }
+ })); }
@Override
- public ApplicationSpec fromYaml(InputStream yamlFile) {
- return data;
+ public ApplicationSpec fromYaml(InputStream inputstream) {
+ return (ApplicationSpec) new Yaml().load(inputstream);
+ // return data;
}
public static void main(String[] args) {
@@ -50,26 +53,38 @@ public class HelloWordAppSpecFactory implements ApplicationSpecFactory {
Yaml yaml = new Yaml(options);
HelloworldAppSpec data = new HelloworldAppSpec();
- data._appConfig = new AppConfig();
- data._appConfig.setValue("k1", "v1");
- data._appName = "testApp";
- data._appMasterPackageUri =
- "/Users/kgopalak/Documents/projects/incubator-helix/helix-provisioning/helix-provisioning-0.7.1-incubating-SNAPSHOT-pkg.tar";
- data._serviceConfigMap = new HashMap<String, Map<String, String>>();
- data._serviceConfigMap.put("HelloWorld", new HashMap<String, String>());
- data._serviceConfigMap.get("HelloWorld").put("k1", "v1");
- data._serviceMainClassMap = new HashMap<String, String>();
- data._serviceMainClassMap.put("HelloWorld", HelloWorldService.class.getCanonicalName());
- data._servicePackageURIMap = new HashMap<String, String>();
- data._servicePackageURIMap
+ AppConfig appConfig = new AppConfig();
+ appConfig.setValue("k1", "v1");
+ data.setAppConfig(appConfig);
+ data.setAppName("testApp");
+ data.setAppMasterPackageUri(
+ "/Users/kgopalak/Documents/projects/incubator-helix/helix-provisioning/helix-provisioning-0.7.1-incubating-SNAPSHOT-pkg.tar");
+ HashMap<String, Map<String, String>> serviceConfigMap = new HashMap<String, Map<String, String>>();
+ serviceConfigMap.put("HelloWorld", new HashMap<String, String>());
+ serviceConfigMap.get("HelloWorld").put("k1", "v1");
+ data.setServiceConfigMap(serviceConfigMap);
+ HashMap<String, String> serviceMainClassMap = new HashMap<String, String>();
+ serviceMainClassMap.put("HelloWorld", HelloWorldService.class.getCanonicalName());
+ data.setServiceMainClassMap(serviceMainClassMap);
+ HashMap<String, String> servicePackageURIMap = new HashMap<String, String>();
+ servicePackageURIMap
.put(
"HelloWorld",
"/Users/kgopalak/Documents/projects/incubator-helix/helix-provisioning/helix-provisioning-0.7.1-incubating-SNAPSHOT-pkg.tar");
- data._services = Arrays.asList(new String[] {
+ data.setServicePackageURIMap(servicePackageURIMap);
+ data.setServices(Arrays.asList(new String[] {
"HelloWorld"
- });
+ }));
String dump = yaml.dump(data);
System.out.println(dump);
- }
+ InputStream resourceAsStream = ClassLoader.getSystemClassLoader().getResourceAsStream("hello_world_app_spec.yaml");
+ HelloworldAppSpec load = yaml.loadAs(resourceAsStream,HelloworldAppSpec.class);
+ String dumpnew = yaml.dump(load);
+ System.out.println(dumpnew.equals(dump));
+
+ System.out.println("==================================");
+ System.out.println(dumpnew);
+
+ }
}
http://git-wip-us.apache.org/repos/asf/helix/blob/d1e7ca60/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/example/HelloworldAppSpec.java
----------------------------------------------------------------------
diff --git a/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/example/HelloworldAppSpec.java b/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/example/HelloworldAppSpec.java
index 4bd3caa..2e4cd75 100644
--- a/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/example/HelloworldAppSpec.java
+++ b/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/example/HelloworldAppSpec.java
@@ -15,21 +15,74 @@ import org.apache.helix.provisioning.yarn.TaskConfig;
public class HelloworldAppSpec implements ApplicationSpec {
- public String _appName;
+ private String _appName;
- public AppConfig _appConfig;
+ private AppConfig _appConfig;
- public List<String> _services;
+ private List<String> _services;
- public String _appMasterPackageUri;
+ private String _appMasterPackageUri;
+
+ private Map<String, String> _servicePackageURIMap;
- public Map<String, String> _servicePackageURIMap;
+ private Map<String, String> _serviceMainClassMap;
- public Map<String, String> _serviceMainClassMap;
+ private Map<String,Map<String,String>> _serviceConfigMap;
- public Map<String,Map<String,String>> _serviceConfigMap;
+ private List<TaskConfig> _taskConfigs;
+
+ public AppConfig getAppConfig() {
+ return _appConfig;
+ }
+
+ public void setAppConfig(AppConfig appConfig) {
+ _appConfig = appConfig;
+ }
+
+ public String getAppMasterPackageUri() {
+ return _appMasterPackageUri;
+ }
+
+ public void setAppMasterPackageUri(String appMasterPackageUri) {
+ _appMasterPackageUri = appMasterPackageUri;
+ }
+
+ public Map<String, String> getServicePackageURIMap() {
+ return _servicePackageURIMap;
+ }
+
+ public void setServicePackageURIMap(Map<String, String> servicePackageURIMap) {
+ _servicePackageURIMap = servicePackageURIMap;
+ }
+
+ public Map<String, String> getServiceMainClassMap() {
+ return _serviceMainClassMap;
+ }
+
+ public void setServiceMainClassMap(Map<String, String> serviceMainClassMap) {
+ _serviceMainClassMap = serviceMainClassMap;
+ }
+
+ public Map<String, Map<String, String>> getServiceConfigMap() {
+ return _serviceConfigMap;
+ }
+
+ public void setServiceConfigMap(Map<String, Map<String, String>> serviceConfigMap) {
+ _serviceConfigMap = serviceConfigMap;
+ }
+
+ public void setAppName(String appName) {
+ _appName = appName;
+ }
+
+ public void setServices(List<String> services) {
+ _services = services;
+ }
+
+ public void setTaskConfigs(List<TaskConfig> taskConfigs) {
+ _taskConfigs = taskConfigs;
+ }
- public List<TaskConfig> _taskConfigs;
@Override
public String getAppName() {
return _appName;
http://git-wip-us.apache.org/repos/asf/helix/blob/d1e7ca60/helix-provisioning/src/main/resources/hello_world_app_spec.yaml
----------------------------------------------------------------------
diff --git a/helix-provisioning/src/main/resources/hello_world_app_spec.yaml b/helix-provisioning/src/main/resources/hello_world_app_spec.yaml
index 1f0bc70..648104a 100644
--- a/helix-provisioning/src/main/resources/hello_world_app_spec.yaml
+++ b/helix-provisioning/src/main/resources/hello_world_app_spec.yaml
@@ -1,21 +1,23 @@
!!org.apache.helix.provisioning.yarn.example.HelloworldAppSpec
-_appConfig:
+appConfig:
config: {
k1: v1
}
-_appMasterPackageUri: null
-_appName: testApp
-_serviceConfigMap:
+appMasterPackageUri: 'file:///Users/kgopalak/Documents/projects/incubator-helix/helix-provisioning/target/helix-provisioning-0.7.1-incubating-SNAPSHOT-pkg.tar'
+appName: testApp
+serviceConfigMap:
HelloWorld: {
k1: v1
}
-_serviceMainClassMap: {
+serviceMainClassMap: {
HelloWorld: org.apache.helix.provisioning.yarn.example.HelloWorldService
}
-_servicePackageURIMap: {
- HelloWorld: /Users/kgopalak/Documents/projects/incubator-helix/helix-provisioning/helix-provisioning-0.7.1-incubating-SNAPSHOT-pkg.tar
+servicePackageURIMap: {
+ HelloWorld: 'file:///Users/kgopalak/Documents/projects/incubator-helix/helix-provisioning/target/helix-provisioning-0.7.1-incubating-SNAPSHOT-pkg.tar'
}
-_services: [
+services: [
HelloWorld]
-_taskConfigs: null
+taskConfigs: null
+
+