You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/07/16 10:49:02 UTC

[04/50] [abbrv] incubator-ignite git commit: #YARN WIP

#YARN WIP


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/12d9c02c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/12d9c02c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/12d9c02c

Branch: refs/heads/ignite-901
Commit: 12d9c02cf6443551cf903e6caac455201cfc0043
Parents: 85f4a89
Author: nikolay tikhonov <nt...@gridgain.com>
Authored: Fri Jun 5 19:37:23 2015 +0300
Committer: nikolay tikhonov <nt...@gridgain.com>
Committed: Fri Jun 5 19:37:23 2015 +0300

----------------------------------------------------------------------
 .../apache/ignite/yarn/ApplicationMaster.java   | 35 ++++++++++++--------
 1 file changed, 22 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/12d9c02c/modules/yarn/src/main/java/org/apache/ignite/yarn/ApplicationMaster.java
----------------------------------------------------------------------
diff --git a/modules/yarn/src/main/java/org/apache/ignite/yarn/ApplicationMaster.java b/modules/yarn/src/main/java/org/apache/ignite/yarn/ApplicationMaster.java
index 95197b7..fe065a3 100644
--- a/modules/yarn/src/main/java/org/apache/ignite/yarn/ApplicationMaster.java
+++ b/modules/yarn/src/main/java/org/apache/ignite/yarn/ApplicationMaster.java
@@ -19,6 +19,7 @@ package org.apache.ignite.yarn;
 
 import org.apache.commons.io.*;
 import org.apache.hadoop.fs.*;
+import org.apache.hadoop.service.Service;
 import org.apache.hadoop.yarn.api.records.*;
 import org.apache.hadoop.yarn.client.api.*;
 import org.apache.hadoop.yarn.client.api.async.*;
@@ -198,29 +199,37 @@ public class ApplicationMaster implements AMRMClientAsync.CallbackHandler {
         Priority priority = Records.newRecord(Priority.class);
         priority.setPriority(0);
 
-        // Resource requirements for worker containers
-        Resource capability = Records.newRecord(Resource.class);
-        capability.setMemory(1024);
-        capability.setVirtualCores(2);
+        // Check ignite cluster.
+        while (!nmClient.isInState(Service.STATE.STOPPED)) {
+            Resource availableRes = rmClient.getAvailableResources();
 
-        // Make container requests to ResourceManager
-        for (int i = 0; i < 1; ++i) {
-            AMRMClient.ContainerRequest containerAsk =
-                new AMRMClient.ContainerRequest(capability, null, null, priority);
+            if (containers.size() < props.instances() || availableRes.getMemory() >= props.cpusPerNode()
+                || availableRes.getVirtualCores() >= props.cpus()) {
+                // Resource requirements for worker containers
+                Resource capability = Records.newRecord(Resource.class);
+                capability.setMemory(1024);
+                capability.setVirtualCores(2);
 
-            System.out.println("[AM] Making res-req " + i);
+                for (int i = 0; i < 1; ++i) {
+                    // Make container requests to ResourceManager
+                    AMRMClient.ContainerRequest containerAsk =
+                            new AMRMClient.ContainerRequest(capability, null, null, priority);
 
-            rmClient.addContainerRequest(containerAsk);
+                    System.out.println("[AM] Making res-req " + i);
+
+                    rmClient.addContainerRequest(containerAsk);
+                }
+            }
+
+            TimeUnit.SECONDS.sleep(5);
         }
 
         System.out.println("[AM] waiting for containers to finish");
 
-        TimeUnit.MINUTES.sleep(10);
-
         System.out.println("[AM] unregisterApplicationMaster 0");
 
         // Un-register with ResourceManager
-        rmClient.unregisterApplicationMaster(FinalApplicationStatus.SUCCEEDED, "", "");
+        rmClient.unregisterApplicationMaster(FinalApplicationStatus.KILLED, "", "");
 
         System.out.println("[AM] unregisterApplicationMaster 1");
     }