[10/39] kylin git commit: KYLIN-2420 Record zookeeper lock holder information
KYLIN-2420 Record zookeeper lock holder information Signed-off-by: Billy LiuProject: 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
Repository: kylin Updated Branches: refs/heads/master 7611338b5 -> 56c7aa505 KYLIN-2420 Record zookeeper lock holder information Signed-off-by: Billy LiuProject: 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(); +} }