rebase 2.x-staging

Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/40228682
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/40228682
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/40228682

Branch: refs/heads/helix-rebase
Commit: 40228682aa3a4f5a37d3299d5489d73368077745
Parents: daeaf08
Author: shaofengshi <[email protected]>
Authored: Wed Dec 30 14:18:06 2015 +0800
Committer: shaofengshi <[email protected]>
Committed: Fri Mar 4 09:52:18 2016 +0800

----------------------------------------------------------------------
 build/bin/kylin.sh                              | 10 +++++
 .../test_case_data/sandbox/kylin.properties     |  1 +
 .../java/org/apache/kylin/rest/DebugTomcat.java |  3 ++
 .../kylin/rest/controller/JobController.java    | 44 ++++++++++----------
 4 files changed, 37 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/40228682/build/bin/kylin.sh
----------------------------------------------------------------------
diff --git a/build/bin/kylin.sh b/build/bin/kylin.sh
index f4d9fac..074acce 100644
--- a/build/bin/kylin.sh
+++ b/build/bin/kylin.sh
@@ -73,6 +73,15 @@ then
     mkdir -p ${KYLIN_HOME}/ext
     export 
HBASE_CLASSPATH=$hive_dependency:${KYLIN_HOME}/lib/*:${KYLIN_HOME}/ext/*:${HBASE_CLASSPATH}
 
+    if [ -z "$KYLIN_REST_ADDRESS" ]
+    then
+        kylin_rest_address=`hostname`":"`grep "<Connector port=" 
${tomcat_root}/conf/server.xml |grep protocol=\"HTTP/1.1\" | cut -d '=' -f 2 | 
cut -d \" -f 2`
+        echo "KYLIN_REST_ADDRESS not found, will use ${kylin_rest_address}"
+    else
+        echo "KYLIN_REST_ADDRESS is set to: $KYLIN_REST_ADDRESS"
+        kylin_rest_address=$KYLIN_REST_ADDRESS
+    fi
+
     #debug if encounter NoClassDefError
     #hbase classpath
 
@@ -88,6 +97,7 @@ then
     -Djava.io.tmpdir=${tomcat_root}/temp  \
     -Dkylin.hive.dependency=${hive_dependency} \
     -Dkylin.hbase.dependency=${hbase_dependency} \
+    -Dkylin.rest.address=${kylin_rest_address} \
     -Dspring.profiles.active=${spring_profile} \
     org.apache.hadoop.util.RunJar ${tomcat_root}/bin/bootstrap.jar  
org.apache.catalina.startup.Bootstrap start >> ${KYLIN_HOME}/logs/kylin.out 
2>&1 & echo $! > ${KYLIN_HOME}/pid &
     echo "A new Kylin instance is started by $USER, stop it using \"kylin.sh 
stop\""

http://git-wip-us.apache.org/repos/asf/kylin/blob/40228682/examples/test_case_data/sandbox/kylin.properties
----------------------------------------------------------------------
diff --git a/examples/test_case_data/sandbox/kylin.properties 
b/examples/test_case_data/sandbox/kylin.properties
index 7c9919b..0d89b8c 100644
--- a/examples/test_case_data/sandbox/kylin.properties
+++ b/examples/test_case_data/sandbox/kylin.properties
@@ -4,6 +4,7 @@
 # currently it will be attached to each kylin's htable attribute
 [email protected]
 
+kylin.zookeeper.address=sandbox:2181
 # List of web servers in use, this enables one web server instance to sync up 
with other servers.
 kylin.rest.servers=localhost:7070
 

http://git-wip-us.apache.org/repos/asf/kylin/blob/40228682/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java 
b/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
index c0f61d2..139cddc 100644
--- a/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
+++ b/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
@@ -30,6 +30,7 @@ import org.apache.catalina.startup.Tomcat;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.util.Shell;
 import org.apache.kylin.common.KylinConfig;
+import org.apache.kylin.common.util.HostnameUtils;
 import org.apache.kylin.rest.util.ClasspathUtil;
 
 public class DebugTomcat {
@@ -45,6 +46,8 @@ public class DebugTomcat {
 
             System.setProperty("spring.profiles.active", "testing");
 
+            System.setProperty("kylin.rest.address", 
HostnameUtils.getHostname() + ":" + "7070");
+
             //avoid log permission issue
             if (System.getProperty("catalina.home") == null)
                 System.setProperty("catalina.home", ".");

http://git-wip-us.apache.org/repos/asf/kylin/blob/40228682/server/src/main/java/org/apache/kylin/rest/controller/JobController.java
----------------------------------------------------------------------
diff --git 
a/server/src/main/java/org/apache/kylin/rest/controller/JobController.java 
b/server/src/main/java/org/apache/kylin/rest/controller/JobController.java
index 5c835ac..4d0824a 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/JobController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/JobController.java
@@ -26,6 +26,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.TimeZone;
 
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import joptsimple.internal.Strings;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.job.JobInstance;
 import org.apache.kylin.job.constant.JobStatusEnum;
@@ -76,28 +79,15 @@ public class JobController extends BasicController 
implements InitializingBean {
         TimeZone tzone = TimeZone.getTimeZone(timeZone);
         TimeZone.setDefault(tzone);
 
-        final KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();
-        String serverMode = kylinConfig.getServerMode();
-
-        if (Constant.SERVER_MODE_JOB.equals(serverMode.toLowerCase()) || 
Constant.SERVER_MODE_ALL.equals(serverMode.toLowerCase())) {
-            logger.info("Initializing Job Engine ....");
-
-            new Thread(new Runnable() {
-                @Override
-                public void run() {
-                    try {
-                        DefaultScheduler scheduler = 
DefaultScheduler.getInstance();
-                        scheduler.init(new JobEngineConfig(kylinConfig), 
jobLock);
-                        while (!scheduler.hasStarted()) {
-                            logger.error("scheduler has not been started");
-                            Thread.sleep(1000);
-                        }
-                    } catch (Exception e) {
-                        throw new RuntimeException(e);
-                    }
-                }
-            }).start();
+        if (System.getProperty("kylin.rest.address") == null) {
+            throw new RuntimeException("There is no -Dkylin.rest.address set; 
Please check bin/kylin.sh");
         }
+
+        final String restAddress = System.getProperty("kylin.rest.address");
+        final String hostname = 
Preconditions.checkNotNull(restAddress.substring(0, 
restAddress.lastIndexOf(":")));
+        final String port = 
Preconditions.checkNotNull(restAddress.substring(restAddress.lastIndexOf(":") + 
1));
+        final String instanceName = hostname + "_" + port;
+        final KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();
     }
 
     /**
@@ -209,4 +199,16 @@ public class JobController extends BasicController 
implements InitializingBean {
         this.jobService = jobService;
     }
 
+    private void updateKylinConfig(List<String> instances) {
+        List<String> instanceRestAddresses = Lists.newArrayList();
+        for (String instanceName : instances) {
+            int indexOfUnderscore = instanceName.lastIndexOf("_");
+            instanceRestAddresses.add(instanceName.substring(0, 
indexOfUnderscore) + ":" + instanceName.substring(indexOfUnderscore + 1));
+        }
+        String restServersInCluster = Strings.join(instanceRestAddresses, ",");
+        KylinConfig.getInstanceFromEnv().setProperty("kylin.rest.servers", 
restServersInCluster);
+        System.setProperty("kylin.rest.servers", restServersInCluster);
+
+    }
+
 }

Reply via email to