[10/39] kylin git commit: KYLIN-2420 Record zookeeper lock holder information

2017-02-08 Thread lidong
KYLIN-2420 Record zookeeper lock holder information

Signed-off-by: Billy Liu 


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

Branch: refs/heads/master-hbase0.98
Commit: 56c7aa505706f9aa878b4d3804cdf3f357a7931f
Parents: 7611338
Author: Roger Shi 
Authored: Sat Feb 4 13:43:03 2017 +0800
Committer: Billy Liu 
Committed: Sat Feb 4 13:46:59 2017 +0800

--
 .../storage/hbase/util/ZookeeperJobLock.java| 26 +++-
 1 file changed, 25 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/56c7aa50/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperJobLock.java
--
diff --git 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperJobLock.java
 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperJobLock.java
index bdd3981..7bf7498 100644
--- 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperJobLock.java
+++ 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperJobLock.java
@@ -18,6 +18,8 @@
 
 package org.apache.kylin.storage.hbase.util;
 
+import java.lang.management.ManagementFactory;
+import java.net.UnknownHostException;
 import java.util.Arrays;
 import java.util.concurrent.TimeUnit;
 
@@ -35,6 +37,7 @@ import org.apache.hadoop.hbase.HConstants;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.job.lock.JobLock;
 import org.apache.kylin.storage.hbase.HBaseConnection;
+import org.apache.zookeeper.KeeperException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -63,9 +66,14 @@ public class ZookeeperJobLock implements JobLock {
 }
 
 RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
-this.zkClient = CuratorFrameworkFactory.newClient(zkConnectString, 
retryPolicy);
+try {
+this.zkClient = 
CuratorFrameworkFactory.builder().connectString(zkConnectString).retryPolicy(retryPolicy).defaultData(getIpProcess()).build();
+} catch (UnknownHostException e) {
+throw new RuntimeException(e);
+}
 this.zkClient.start();
 this.sharedLock = new InterProcessMutex(zkClient, this.scheduleID);
+
 boolean hasLock = false;
 try {
 hasLock = sharedLock.acquire(3, TimeUnit.SECONDS);
@@ -74,9 +82,20 @@ public class ZookeeperJobLock implements JobLock {
 }
 if (!hasLock) {
 logger.warn("fail to acquire lock, scheduler has not been started; 
maybe another kylin process is still running?");
+try {
+for (String node : sharedLock.getParticipantNodes()) {
+logger.warn("lock holder info: {}", new 
String(zkClient.getData().forPath(node)));
+}
+} catch (Exception e) {
+logger.warn("error check participant", e);
+if (!(e instanceof KeeperException.NoNodeException)) {
+throw new RuntimeException(e);
+}
+}
 zkClient.close();
 return false;
 }
+
 return true;
 }
 
@@ -115,4 +134,9 @@ public class ZookeeperJobLock implements JobLock {
 private String schedulerId() {
 return ZOOKEEPER_LOCK_PATH + "/" + 
KylinConfig.getInstanceFromEnv().getMetadataUrlPrefix();
 }
+
+private byte[] getIpProcess() throws UnknownHostException {
+logger.info("get IP and processId: {}", 
ManagementFactory.getRuntimeMXBean().getName().getBytes());
+return ManagementFactory.getRuntimeMXBean().getName().getBytes();
+}
 }



kylin git commit: KYLIN-2420 Record zookeeper lock holder information

2017-02-03 Thread billyliu
Repository: kylin
Updated Branches:
  refs/heads/master 7611338b5 -> 56c7aa505


KYLIN-2420 Record zookeeper lock holder information

Signed-off-by: Billy Liu 


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

Branch: refs/heads/master
Commit: 56c7aa505706f9aa878b4d3804cdf3f357a7931f
Parents: 7611338
Author: Roger Shi 
Authored: Sat Feb 4 13:43:03 2017 +0800
Committer: Billy Liu 
Committed: Sat Feb 4 13:46:59 2017 +0800

--
 .../storage/hbase/util/ZookeeperJobLock.java| 26 +++-
 1 file changed, 25 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/kylin/blob/56c7aa50/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperJobLock.java
--
diff --git 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperJobLock.java
 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperJobLock.java
index bdd3981..7bf7498 100644
--- 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperJobLock.java
+++ 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ZookeeperJobLock.java
@@ -18,6 +18,8 @@
 
 package org.apache.kylin.storage.hbase.util;
 
+import java.lang.management.ManagementFactory;
+import java.net.UnknownHostException;
 import java.util.Arrays;
 import java.util.concurrent.TimeUnit;
 
@@ -35,6 +37,7 @@ import org.apache.hadoop.hbase.HConstants;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.job.lock.JobLock;
 import org.apache.kylin.storage.hbase.HBaseConnection;
+import org.apache.zookeeper.KeeperException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -63,9 +66,14 @@ public class ZookeeperJobLock implements JobLock {
 }
 
 RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
-this.zkClient = CuratorFrameworkFactory.newClient(zkConnectString, 
retryPolicy);
+try {
+this.zkClient = 
CuratorFrameworkFactory.builder().connectString(zkConnectString).retryPolicy(retryPolicy).defaultData(getIpProcess()).build();
+} catch (UnknownHostException e) {
+throw new RuntimeException(e);
+}
 this.zkClient.start();
 this.sharedLock = new InterProcessMutex(zkClient, this.scheduleID);
+
 boolean hasLock = false;
 try {
 hasLock = sharedLock.acquire(3, TimeUnit.SECONDS);
@@ -74,9 +82,20 @@ public class ZookeeperJobLock implements JobLock {
 }
 if (!hasLock) {
 logger.warn("fail to acquire lock, scheduler has not been started; 
maybe another kylin process is still running?");
+try {
+for (String node : sharedLock.getParticipantNodes()) {
+logger.warn("lock holder info: {}", new 
String(zkClient.getData().forPath(node)));
+}
+} catch (Exception e) {
+logger.warn("error check participant", e);
+if (!(e instanceof KeeperException.NoNodeException)) {
+throw new RuntimeException(e);
+}
+}
 zkClient.close();
 return false;
 }
+
 return true;
 }
 
@@ -115,4 +134,9 @@ public class ZookeeperJobLock implements JobLock {
 private String schedulerId() {
 return ZOOKEEPER_LOCK_PATH + "/" + 
KylinConfig.getInstanceFromEnv().getMetadataUrlPrefix();
 }
+
+private byte[] getIpProcess() throws UnknownHostException {
+logger.info("get IP and processId: {}", 
ManagementFactory.getRuntimeMXBean().getName().getBytes());
+return ManagementFactory.getRuntimeMXBean().getName().getBytes();
+}
 }