You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2015/09/06 11:17:11 UTC
incubator-kylin git commit: KYLIN-991 Add timestamp for htables,
and check the time before cleanup
Repository: incubator-kylin
Updated Branches:
refs/heads/0.8 d2067c464 -> c7990735c
KYLIN-991 Add timestamp for htables, and check the time before cleanup
Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/c7990735
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/c7990735
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/c7990735
Branch: refs/heads/0.8
Commit: c7990735c6f901d64adbd8927afd57fd63a69e51
Parents: d2067c4
Author: shaofengshi <sh...@apache.org>
Authored: Sun Sep 6 17:16:51 2015 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Sun Sep 6 17:16:51 2015 +0800
----------------------------------------------------------------------
.../realization/IRealizationConstants.java | 3 +++
.../kylin/job/hadoop/cube/StorageCleanupJob.java | 19 ++++++++++++-------
.../hadoop/invertedindex/IICreateHTableJob.java | 1 +
.../storage/hbase/steps/CubeHTableUtil.java | 1 +
4 files changed, 17 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/c7990735/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationConstants.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationConstants.java b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationConstants.java
index 0f2c012..7cbcdf8 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationConstants.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/realization/IRealizationConstants.java
@@ -32,4 +32,7 @@ public class IRealizationConstants {
*/
public final static String HTableTag = "KYLIN_HOST";
+
+ public final static String HTableCreationTime = "CREATION_TIME";
+
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/c7990735/job/src/main/java/org/apache/kylin/job/hadoop/cube/StorageCleanupJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/cube/StorageCleanupJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/cube/StorageCleanupJob.java
index 53b489e..489b9ed 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/cube/StorageCleanupJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/cube/StorageCleanupJob.java
@@ -18,14 +18,10 @@
package org.apache.kylin.job.hadoop.cube;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
+import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
@@ -52,6 +48,11 @@ import org.apache.kylin.metadata.realization.IRealizationConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
/**
* @author ysong1
*/
@@ -62,6 +63,8 @@ public class StorageCleanupJob extends AbstractHadoopJob {
protected static final Logger log = LoggerFactory.getLogger(StorageCleanupJob.class);
+ public static final long TIME_THREADSHOLD = 2 * 24 * 3600 * 1000l; // 2 days
+
boolean delete = false;
protected static ExecutableManager executableManager = ExecutableManager.getInstance(KylinConfig.getInstanceFromEnv());
@@ -108,9 +111,11 @@ public class StorageCleanupJob extends AbstractHadoopJob {
List<String> allTablesNeedToBeDropped = new ArrayList<String>();
for (HTableDescriptor desc : tableDescriptors) {
String host = desc.getValue(IRealizationConstants.HTableTag);
+ String creationTime = desc.getValue(IRealizationConstants.HTableCreationTime);
if (KylinConfig.getInstanceFromEnv().getMetadataUrlPrefix().equalsIgnoreCase(host)) {
- //only take care htables that belongs to self
- allTablesNeedToBeDropped.add(desc.getTableName().getNameAsString());
+ //only take care htables that belongs to self, and created more than 2 days
+ if (StringUtils.isNotEmpty(creationTime) || (System.currentTimeMillis() - Long.valueOf(creationTime) > TIME_THREADSHOLD))
+ allTablesNeedToBeDropped.add(desc.getTableName().getNameAsString());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/c7990735/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHTableJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHTableJob.java b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHTableJob.java
index 258f519..22ed3a2 100644
--- a/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHTableJob.java
+++ b/job/src/main/java/org/apache/kylin/job/hadoop/invertedindex/IICreateHTableJob.java
@@ -99,6 +99,7 @@ public class IICreateHTableJob extends AbstractHadoopJob {
cf.setDataBlockEncoding(DataBlockEncoding.FAST_DIFF);
tableDesc.addFamily(cf);
tableDesc.setValue(IRealizationConstants.HTableTag, config.getMetadataUrlPrefix());
+ tableDesc.setValue(IRealizationConstants.HTableCreationTime, String.valueOf(System.currentTimeMillis()));
tableDesc.setValue(HTableDescriptor.SPLIT_POLICY, DisabledRegionSplitPolicy.class.getName());
Configuration conf = HBaseConfiguration.create(getConf());
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/c7990735/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/CubeHTableUtil.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/CubeHTableUtil.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/CubeHTableUtil.java
index 7b0dad9..221be8a 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/CubeHTableUtil.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/CubeHTableUtil.java
@@ -35,6 +35,7 @@ public class CubeHTableUtil {
// https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/regionserver/ConstantSizeRegionSplitPolicy.html
tableDesc.setValue(HTableDescriptor.SPLIT_POLICY, ConstantSizeRegionSplitPolicy.class.getName());
tableDesc.setValue(IRealizationConstants.HTableTag, kylinConfig.getMetadataUrlPrefix());
+ tableDesc.setValue(IRealizationConstants.HTableCreationTime, String.valueOf(System.currentTimeMillis()));
Configuration conf = HBaseConfiguration.create();
HBaseAdmin admin = new HBaseAdmin(conf);